学习算法(之软件大赛第一题)

来源:互联网 发布:数据图表有哪些 编辑:程序博客网 时间:2024/05/05 18:17

今天看到这样一个算法题:

 (编程题)下列乘法算式中:每个汉字代表1个数字(1~9)。相同的汉字代表相同的数字,不同的汉字代表不同的数字。

 

    赛软件 * 比赛  =  软件比拼

 

试编程确定使得整个算式成立的数字组合,如有多种情况,请给出所有可能的答案。

 

【参考结果】

465 * 14 = 6510



其给出的算法如下:

for (i = 1;i < 10;i++){for (j = 1;j<10;j++){if (i == j)continue;for (k = 1;k < 10;k++){if ((j == k)||(i == k))continue;for(m = 1;m<10;m++){if ((m==i)||(m==j)||(m==k))continue;three_count = i*100+j*10+k;two_count = m*10+i;four_count = three_count * two_count;if (four_count<10000){judge_three_count1 = j*100+k*10+m;judge_three_count2 = (int)(four_count/10);if (judge_three_count1 == judge_three_count2){printf("%d * %d = %d",three_count,two_count,four_count);}}}}}}

输出唯一:

465 * 14 = 6510

原创粉丝点击