迟到的宁神

来源:互联网 发布:多益网络前端笔试题 编辑:程序博客网 时间:2024/05/17 06:51

题目描述
题目:
张宁去ACM比赛,迟到了,就看到门上写着一个奇怪的算式:

ZNASG * ? = GSANZ他对同样迟到的聪神说:“ZNASG应该代表不同的数字,问号也代表某个数字!只有算出来了才能进去考试!”聪神:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。请你利用计算机的优势,找到破解的答案。把 ZNASG 所代表的数字写出来。

输入
没有!

输出
输出ZNASG代表的数字。

每个数字后面加一个空格

#include<stdio.h>#include<string.h>int main(){    int a[6],k,res,r,i,b[6],j;    for(a[1]=1;a[1]<=4;a[1]++){        for(a[2]=0;a[2]<=9;a[2]++){            if(a[2]==a[1]) continue;//如果与之前的数有相等的就跳过不取             for(a[3]=0;a[3]<=9;a[3]++){                if(a[3]==a[1]||a[3]==a[2]) continue;                for(a[4]=0;a[4]<=9;a[4]++){                    if(a[4]==a[1]||a[4]==a[2]||a[4]==a[3]) continue;                    for(a[5]=1;a[5]<=9;a[5]++){                        if(a[5]==a[1]||a[5]==a[2]||a[5]==a[3]||a[5]==a[4]) continue;                            for(k=2;k<=9;k++){                                j=1;r=0;                                for(i=5;i>=1;i--){                                    b[j++]=(a[i]*k+r)%10;//b[]记录 ZNASG*?后的结果,倒着记录                                     r=(a[i]*k+r)/10;                                }                                /*开始写的这个,错了好久                                 b[j++]=(a[i]+r)*%10;                                  r=(a[i]+r)*k/10;                                     */                                 //判断两数是否相等                                 if((a[1]==b[1])&&(a[2]==b[2])&&(a[3]==b[3])&&(a[4]==b[4])&&(a[5]==b[5])&&(r==0)){                                    printf("%d %d %d %d %d",a[1],a[2],a[3],a[4],a[5]);                                    break;                                }                            }                        }                    }                }            }        }    return 0;} 
1 0
原创粉丝点击