【ACM】奇怪的迴文數
阿新 • • 發佈:2018-11-24
題目連結:http://acm.nuc.edu.cn/OJ/contest/show/43/1008
【問題描述】
“迴文”是指正讀反讀都能讀通的句子,它是古今中外都有的一種修辭方式和文字遊戲,如“我為人人,人人為我”等。
在數學中也有這樣一類數字有這樣的特徵,稱為迴文數(palindrome number)。
設a是一任意自然數。若將a的各位數字反向排列所得自然數b與a相等,則稱a為一回文數。例如1234321為迴文數,1234567則不是迴文數。
給定一個正整數n,1<=n<=1000000,將n的各位數字反向排列得到一個正整數m,如果n和m的和為迴文數,則稱n為奇怪的迴文數。若n為奇怪的迴文數,輸出“YES”,否則輸出“NO”。
【輸入描述】
資料的第一行是一個T,表示有T組測試資料。
每組資料為一行,包含一個正整數n。
【輸出描述】
若n為奇怪的迴文數,輸出“YES”,否則輸出“NO”。
一開始的程式碼開設了陣列,又來發現不用!
#include <stdio.h> #include <string.h> int main () { int T,a,m,n,x,y,z; scanf("%d",&T); while(T--) { scanf("%d",&a); m=0;n=a; while(a>0) { m=m*10+a%10; a/=10; } m=m+n; x=m; y=0; while(m>0) { y=y*10+m%10; m/=10; } if(y==x) { printf("YES\n"); } else { printf("NO\n"); } } return 0; }