C言語(0~10万本の水仙の数を求める)

Baidu百科事典: ナルシスト数 (ナルシシスティック ナンバー) は、超完全デジタル不変式 (プルパーフェクト デジタル インバリアント、PPDI)、ナルシスト数、セルフパワー番号、アームストロング数またはアームストロング数 (アームストロング数)、ナルシスト数とも呼ばれます。各桁の 3 乗の合計がそれ自体に等しい桁の数値。例: 1^3 + 5^3+ 3^3 = 153。
問題を解決するという考えは、まず数値が n 桁であることを確認し、それを数百に分割することができます。pow 関数を使用して n 乗し、最後に次
のようにソース コードを比較します。
#include<stdio.h>
#include<math.h>//pow 関数を使用する場合は、
int main()
{ int i = 0;

for ( i = 0; i <= 100000; i++)
{
	int n = 0;//代表有几位数,比如123,那么n就为3,
	int tem = i;//使用一个临时变量来存放i,用来进行判断等操作,如若不然,会改变i的值,导致死循环
	while (tem)//求n的值,
	{
		n++;
		tem = tem / 10;

	}
	tem = i;//重新赋值,
	int sum = 0;//用于存放个位十位百位n次方的累加和
	while (tem)
	{
		sum += pow(tem % 10, n);
		tem = tem / 10;

	}
	if (sum == i)//判断
	{
		printf("%d\n", i);

	}
	
}
return 0;

}

おすすめ

転載: blog.csdn.net/Kirihara_Yukiho/article/details/123159754