上机内容:
在下面的加法算式中,不同的符号代表不同的数字,相同的符号代表相同的数字。请设计程序求出"都、要、学、C"4个符号分别代表的数字。
学 C
要 学 C
+ 都 要 学 C
________________
2 0 0 8
提示:用穷举法。"
上机目的:在程序调试技术、解题方法方面加深理解
我的程序:
#include<iostream>
using namespace std;
int main()
{
int dou,yao,xue,c,sum;
for(dou=1;dou<3;dou++) //都只能取数字1或2
for(yao=0;yao<10;yao++) //要、学、C可以取数字(0~9)
for(xue=0;xue<10;xue++)
for(c=0;c<10;c++)
{
if((dou-yao)*(dou-xue)*(dou-c)*(yao-xue)*(yao-c)*(xue-c)!=0) //各不相同的符号相减不为零
{
sum=4*c+3*xue*10+2*yao*100+1*dou*1000; //各位相加的结果
if(sum==2008)
cout<<" 都:"<<dou<<" 要:"<<yao<<" 学:"<<xue<<" C:"<< c<<endl;
}
}
return 0;
}
运行结果:
体会总结:开始一看到这个题目无从下手,看着提示才有一点头绪。穷举法就可以解决了。