C語言程式設計:求一個迴文數
阿新 • • 發佈:2019-02-06
迴文數,是指正著讀、反著讀,都相同的數字。如:1221、13531...等等。任取一個十進位制整數,用下面的方法可以求出一個迴文數:把這個數字的各個位,顛倒前後位置,形成一個新數,再和原數相加,得到的和,就可能是一個迴文數。如果不是迴文數,就再重複上述的步驟,則最終可得到迴文數。如十進位制數是 78,則形成迴文數的過程為:78 + 87 = 165165 + 561 = 726726 + 627 = 13531353 + 3531 = 4884上述方法,尚沒有得到數學上的理論證明,屬於一個猜想。可以編寫一個程式來加以驗證。要求在輸入一個數字後,顯示出來計算的過程。做而論道程式設計如下:#include <stdio.h>unsigned int f1(unsigned int x){ unsigned int y = 0, t; while(x) {t = x % 10; x /= 10; y *= 10; y += t;} return y;}unsigned int f2(unsigned int x){ if (x == f1(x)) return 0; return 1;}void main(){ unsigned int i; printf("Input a number: "); scanf("%d", &i); while(f2(i)) { printf("%u + %u = ", i, f1(i)); //列印過程 i += f1(i); printf("%u\n", i); //列印過程 } printf("HUI WEN SHU = "); printf("%u", i); printf("\n\n");}這個程式執行時,顯示如下:Input a number: 86278627 + 7268 = 1589515895 + 59851 = 7574675746 + 64757 = 140503140503 + 305041 = 445544HUI WEN SHU = 445544Press any key to continue