您的位置:首页 > 其它

蓝桥杯 乘法算式 暴力

2015-03-23 18:58 246 查看
观察下面的算式:

* * × * * = * * *

它表示:两个两位数字相乘,结果是3位数。其中的星号(*)代表任意的数字,可以相同,也可以不同,只要不是在首位的就可以是0。当然,满足这个要求的算式很多,但我们还有如下的要求:

所有星号所代表的数字全都是奇数。满足这个要求的算式就不多了。

比如:13 x 15 = 195

题目的任务是:编写程序,找到所有可能的情况。

输出的结果中,每个情况占用1行,不需要考虑不同情况如何排序问题。每行的格式如:

13 x 15 = 195

其中乘号用“x”表示。

和之前做的一道猜算式的题目有点类似,只不过这道更加简单只要枚举从10到99的两个乘数就可以,然后判断一下积是否符合题意,需要注意的一点是,对于a×b=c和b×a=c在题目中算两种结果,有点小坑。

#include<iostream>
using namespace std;

bool judge(int n)
{
while(n!=0)
{
if((n%10)%2==0)
return false;
n/=10;
}
return true;
}

int main()
{
int i,j;
for(i=10;i<=99;i++)
{
for(j=10;j<=99;j++)
{
int num=i*j;
if(num>=100&&num<=999&&judge(i)&&judge(j)&&judge(num))
{
cout<<i<<"x"<<j<<"="<<num<<endl;
}
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息