//10_20_2011_bai6.cpp
#include"iostream"
using namespace std;
//Mang X[] de luu 4 gia tri 1,2,3,4 tuong ung voi *,/,+,-
//Mang A[] de luu 5 gia tri cua bieu thuc duoc nhap tu ban phim
//K la gia tri cua bieu thuc
//OK kiem tra tinh dung cua ham sinh hoan vi Next_Permunation
int X[4],A[5],n = 4,OK = 1,K ;
void Init()
{
cout<<"Nhap gia tri cua bieu thuc: ";
cin>>K;
for(int i=1;i<=5;i++)
{
cout<< "Nhap so "; cin >> A[i];
}
for(int i =1;i<=4;i++)
X[i] = i;
}
void Next_Permutation()
{
int j = n-1;
// Tim X[j] dau tien tu phai sang trai ma X[j] > X[j+1]
while( j> 0&& X[j] > X[j+1]) j--;
//Tim X[k] dau tien tu phai qua trai ma X[j] > X[k]
if(j>0)
{
int k =n;
while( X[j] > X[k]) k--;
//Hoan vi X[j] va X[k]
int t = X[j]; X[j] = X[k]; X[k] = t;
int r = j +1, s = n;
while( r <=s)
{
//Hoan vi X[r] va X[s]
// lat nguoc day a[j+1],a[j+2],a[n];
t = X[r]; X[r] = X[s]; X[s] = t;
++r; --s;
}
}
else OK = 0;
}
// In ra ket qua la thu tu cua 4 phep tinh
void result()
{
for(int i =1; i<=4;i++)
switch(X[i])
{
case 1: {cout<<"*"; break;}
case 2: { cout<<"/";break;}
case 3: {cout<<"+";break;}
case 4: {cout<<"-";break;}
}
}
int test()
{
int t[5];
for(int i=1;i<=5;i++)
{
t[i] = A[i];
}
// Bien bieu thuc co 4 phep tinh tro thanh bieu thuc chi con 2 phep tinh cong, tru
for ( int i = 1; i<=4; i++)
{
if( X[i]== 1)
{
t[i] = A[i]*A[i+1];
t[i+1] = 0;
if(i<4&&X[i+1] == 2)
{
t[i] = t[i]/A[i+2];
t[i+2]=0;
break;
}
}
if( X[i] == 2)
{
t[i] = A[i] / A[i+1];
t[i+1] = 0;
if( i<4 && X[i+1] == 1)
{
t[i] = t[i]/A[i+2];
t[i+2] = 0;
break;
}
}
}
int S = t[1];// S de luu gia tri cua bieu thuc
for( int i =2;i<=5;i++)
{
if(X[i-1] == 4) S-=t[i];
else S+=t[i];
}
if(S == K)return 1;
return 0;
}
int main()
{
Init();
while(OK)
{
if(test())result();
Next_Permutation();
}
//system("pause");
//return 0;
}
Home
»
»Unlabelled
» điền 4 phép toán vào biểu thức
Sunday, October 23, 2011
Subscribe to:
Post Comments (Atom)
Popular Posts
-
Phần mềm Emu8086 là phần mềm cho phép mô phỏng hoạt động của vi xử lý 8086 bao gồm các câu lệnh cơ bản của 8086, xử lý ngắt mềm, giao tiếp v...
-
lập trình tìm các bộ số pitago | lập trình c/c++. Một tam giác vuông có thể có tất cả các cạnh là các số nguyên. Tập của ba số nguyên của ...
-
Bài Giải #include <stdio.h> #include <conio.h> #include <math.h> int main () { int n; float AS,AM,a; int s=0; float m=1...
-
1. Helloworld Đề bài: Viết chương trình hiển thị ra màn hình dòng chữ Hello, World! Ý tưởng: Code: #include int main() /* my first progra...
-
#include <stdio.h> #include <conio.h> #include <math.h> // Dinh nghia callback typedef int (* opstion) (int *, int); //ham...
-
Viết chương trình nhập vào số nguyên dương h (2<h<23), sau đó in ra các tam giác có chiều cao là h.viết hàm in các tam giác có chiều c...
-
viết chương trình c chuyển đổi hệ đếm nhị phân, bát phân, thập lục phân . DEC,BIN,HEX,OCT. Viết chương trình in bảng của các số từ 1 đến ...
-
Để liệt kê các chỉnh hợp không lặp chập k của tập S = {1,2,3,.., n} , ta có thể đưa về liệt kê các cấu hình x[1,..,k] trong đó xi thuộc tập ...
0 comments:
Post a Comment