程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 回文數的形成

回文數的形成

編輯:C語言基礎知識
回文數的形成規則不知道數學上有沒有證實。假如有的話,朋友可以告訴我,這裡通過編程驗證。
  規則:任意的一個的十進制的整數,將其轉過來後和原來的整數相加,得到新的整數後重復以上步驟,最終可以得到一個回文數。 #include<stdio.h>
  #define MAX 2147483648 //限制M+N的范圍
  long re(long int a)//求輸入整數的反序
  {
   long int t;
   for(t=0;a>0;a/=10)//將整數反序
    t=t*10+a%10;
   return t;
  }
  int nonre(long int s)//判定給定的整數是否為回文數
  {
   if(re(s)==s)
    return 1;//是返回1
   else
    return 0;//不是返回0
  } void main()
  {
   long int n,m;
   int count=0;
   printf("please input a number optionaly:");
   scanf("%ld",&n);
   printf("The genetation process of palindrome: ");
   while(!nonre((m=re(n))+n))//判定整數與其反序相加後是否為回文數
   {
    if((m+n)>=MAX)//超過界限輸出提示信息
    {
     printf("input error,break. ");
     break;
    }
    else
    {
     printf("[%d]:%ld+%ld=%ld ",++count,n,m,m+n);
     n+=m;//累加
    }
   }
   printf("[%d]:%d+%ld=%ld ",++count,n,m+n);
   printf("Here we reached the aim at last. ");//輸出最好得到的回文數
  }
  
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved