2015年第六屆藍橋杯C/C++程式設計本科B組省賽-三羊獻瑞
阿新 • • 發佈:2019-02-19
三羊獻瑞(結果填空)
觀察下面的加法算式:
祥 瑞生 輝
+ 三羊 獻 瑞
-------------------
三 羊 生 瑞 氣
其中,相同的漢字代表相同的數字,不同的漢字代表不同的數字。
請你填寫“三羊獻瑞”所代表的4位數字(答案唯一),不要填寫任何多餘內容。
思路:迴圈遍歷每一個漢字代表的數字。
即可轉換為
a b c d
+ e f g b
-------------
e f c b h
答案為:1085
#include <stdio.h> #include <stdlib.h> int main() { int a,b,c,d,e,f,g,h; int num1,num2,num3; //int sum=0; for(a=1; a<10; a++) { for(b=0; b<10; b++) { for(c=0; c<10; c++) { for(d=0; d<10; d++) { for(e=1; e<10; e++) { for(f=0; f<10; f++) { for(g=0; g<10; g++) { if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g &&b!=c&&b!=d&&b!=e&&b!=f&&b!=g &&c!=d&&c!=e&&c!=f&&c!=g &&d!=e&&d!=f&&d!=g &&e!=f&&e!=g&&f!=g) {//判斷a b c d e f g各不相等時要寫仔細,不要有遺漏 num1=a*1000+b*100+c*10+d; num2=e*1000+f*100+g*10+b; num3=num1+num2; h=num3%10; if(h!=a&&h!=b&&h!=c&&h!=d&&h!=e&&h!=f&&h!=g)//h是通過計算得來的,h也不能與acdefg中的任何一個相同 { if(num3/10000==e &&(num3/1000)%10==f &&(num3/100)%10==c &&(num3/10)%10==b &&num3%10==h) { //sum++; // printf("%d%d%d%d\n",a,b,c,d); printf("%d%d%d%d\n",e,f,g,b); //printf("%d%d%d%d%d\n",e,f,c,b,h); //printf("****************\n"); } } } } } } } } } } //printf("%d",sum); return 0; }