1. 程式人生 > >C語言程式設計:求一個迴文數

C語言程式設計:求一個迴文數

迴文數,是指正著讀、反著讀,都相同的數字。如: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