迴文水仙花自守數介紹201809
阿新 • • 發佈:2018-12-09
對於數本身,有很多有趣的性質,本篇只介紹三種有趣的數字,都是和數位拆分有關;
1、迴文數:從左到右、從右到左讀,都是一樣的數;
2、水仙花數:在三位數中,有一些數字滿足條件:各數位的數的平方和等於這個數字本身;
3、自守數:一個數平方後,尾數等於自己;
1、迴文數的判斷:
1.1 將一個數字按數位拆分,並且放到一個數組中;
1.2 讓這個陣列進行首尾比較;
上程式碼:
//迴文數的判斷 //不定數位的拆分+首尾判斷 #include<cstdio> int a[20]; bool pd(int x)//判斷這個數字是否是迴文,是的話返回1,否返回0; { int n=0; while(x>0)//對x進行數位拆分 { a[++n]=x%10;//每次將個位放進a陣列中 x/=10; } //a陣列的長度是n for(int i=1;i<=n/2;i++)//列舉前半段,分別和後半段對稱的位置進行比較 { if(a[i]!=a[n-i+1])//有一個不符合要求,就是錯的 { return 0; } } return 1;//以上判斷過程能完成,所以是對的 } int main() { int x; scanf("%d",&x); if(pd(x)>0) { printf("Y"); } else { printf("0"); } return 0; }
2、水仙花數的判斷與輸出
//輸出全部的水仙花數
//
#include<cstdio>
int main()
{
int s,n,a,b,c;
for(int i=100;i<=999;i++)//列舉三位數
{
a=i%10;//取個位
b=i/10%10;//取十位
c=i/100;//取百位
if( a*a*a+b*b*b+c*c*c == i )
{
printf("%d^3+%d^3+%d^3 = %d \n",a,b,c,i);
}
}
return 0;
}
3、自守數的判斷
3.1 用x來求出自己的長度
//輸出從1-10000的自守數 //數位長度的理解 #include<cstdio> int main() { int s,x; for(int i=1;i<=10000;i++) { s=i*i; x=1; //求出對應的數位長度 while(x<i)//如果x比自己小,x*10 { x=x*10; } //最終:原數是幾位,x就是1*幾個0; //例如:原數是62,x就是100;原數是5628,x就是10000; if(s%x==i) { printf("%d ^2 = %d \n",i,s); } } return 0; }