//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
-
Thêm một mục dự báo thời tiết vào blog chắc chắn sẽ làm blog của bạn trông pro hơn rất nhiều . Đây là một số code chèn dự báo thời tiết và...
-
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...
-
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 ...
-
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...
-
Để 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 ...
-
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...
-
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...
-
#include <stdio.h> #include <conio.h> #include <math.h> // Dinh nghia callback typedef int (* opstion) (int *, int); //ham...
-
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 ...
0 comments:
Post a Comment