c语言中自守数函数,【C语言训练】自守数问题 (C语言代码)
#include?
#include?
/**
這個函數用來求一個數有幾位,例如12345有5位。
*/
int?sizes(int?n)
{
int?count=1;
while(n/10!=0)
{
count++;
n=n/10;
}
return?count;
}
/**
這個函數用來求n^m,其中n,m均為整數。
*/
long?long?mypow(int?n,int?m)
{
int?i;
long?long?s=1;
for(i=1;i<=m;i++)
{
s=s*n;
}
return?s;
}
int?main()
{
int?i,n;
int?a[50],count=0;
for(i=0;i<=200000;i++)
{
n=sizes(i);
/**
核心思路在下面這個if式子里
自守數的平方減去自守數,得到的值能夠整除10的自守數的位數次方。
例如:9376^2=87909376
9376有4位,
87909376-9376=87900000
則?87900000?%?10^4?==0
*/
if(?(mypow(i,2)-i)?%?mypow(10,n)?==?0)
{
//將符合條件的值存入數組中,方便格式化輸出
a[count]=i;
count++;
}
}
for(i=0;i
{
if(i==count-1)
printf("%d",a[i]);
else
printf("%d??",a[i]);//天坑,這里要求兩個空格
}
return?0;
}
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的c语言中自守数函数,【C语言训练】自守数问题 (C语言代码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手把手教你学51单片机-c语言版期末考试
- 下一篇: n阶乘的c语言代码,求10000的阶乘(