题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明的作业本上有道思考题:
看下面的算式:
(□□□□-□□□□)*□□=900
其中的小方块代表 0 ~ 9 的数字,这 10 个方块刚好包含了 0 ~ 9 中的所有数字。 注意:0 不能作为某个数字的首位。
小明经过几天的努力,终于做出了答案!如下:
(5012-4987)*36=900
用计算机搜索后,发现还有另外一个解,本题的任务就是:请你算出这另外的一个解。
注意:输出格式需要与示例严格一致; 括号及运算符号不要用中文输入法; 整个算式中不能包含空格。
问题分析
我们可以采用先保证每一位不相同来寻找数字,也可以先寻找数字,再确定每一位不相同。
两种方法都可以找出答案。
代码实现
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
for(int i=1;i<=9;i++){
for(int j=0;j<=9;j++){
if(i!=j){
for(int k=0;k<=9;k++){
if(k!=i&&k!=j){
for(int l=0;l<=9;l++){
if(l!=i&&l!=j&&l!=k){
for(int m=1;m<=9;m++){
if(m!=i&&m!=j&&m!=k&&m!=l){
for(int n=0;n<=9;n++){
if(n!=i&&n!=j&&n!=k&&n!=l&&n!=m){
for(int o=0;o<=9;o++){
if(o!=i&&o!=j&&o!=k&&o!=l&&o!=m&&o!=n){
for(int p=0;p<=9;p++){
if(p!=i&&p!=j&&p!=k&&p!=l&&p!=m&&p!=n&&p!=o){
for(int q=1;q<=9;q++){
if(q!=i&&q!=j&&q!=k&&q!=l&&q!=m&&q!=n&&q!=o&&q!=p){
for(int r=0;r<=9;r++){
if(r!=i&&r!=j&&r!=k&&r!=l&&r!=m&&r!=n&&r!=o&&r!=p&&r!=q){
if((i*1000+j*100+k*10+l-m*1000-n*100-o*10-p)*(q*10+r)==900&&(i*1000+j*100+k*10+l)!=5012){
printf("(%d%d%d%d-%d%d%d%d)*%d%d=900",i,j,k,l,m,n,o,p,q,r);
return 0;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return 0;
}
文章描述了一个计算问题,要求找到算式(□□□□-□□□□)*□□=900的另一个解,除了已知的(5012-4987)*36=900之外。通过C语言编写代码,遍历所有可能的数字组合来寻找满足条件的答案,强调了代码中避免重复数字的重要性。
3626

被折叠的 条评论
为什么被折叠?



