题目描述
观察下面的算式:
* * × * * = * * *
它表示:两个两位数字相乘,结果是3位数。其中的星号(*)代表任意的数字,可以相同,也可以不同,只要不是在首位的就可以是0。当然,满足这个要求的算式很多,但我们还有如下的要求:
所有星号所代表的数字全都是奇数。满足这个要求的算式就不多了。
比如:13 x 15 = 195
题目的任务是:编写程序,找到所有可能的情况。
输入
输出
输出的结果中,每个情况占用1行,不需要考虑不同情况如何排序问题。每行的格式如:
13 x 15 = 195
其中乘号用“x”表示。
提示
代码如下:
#include <iostream>
using namespace std;
int main()
{
int n,m,s;
for (m=11; m<=99; m+=2)
{
if (((m%10)%2==0)||((m/10)%2==0))
continue;
for (n=11; n<=99; n+=2)
{
if (((n%10)%2==0)||((n/10)%2==0))
continue;
s=n*m;
if (s<=999&&s>=100)
if (((s%10)%2==1)&&(((s/10)%10)%2==1)&&((s/100)%2==1))
cout<<m<<" X "<<n<<" = "<<s<<endl;
}
}
return 0;
}
图就不上传了。。。但这道题必须上传,,,简单的一道题居然因为我的粗心错了四次,首先是没看清题目m、n每一位上都必须是奇数错了一次,第二三次是因为格式问题。X的大小写和X与=号前后的空格没有,最后一次是if (((m%10)%2==0)||((m/10)%2==0))的||我又用成了&&。。。惨痛的教训