C 언어 (0에서 100,000 사이의 수선화 수 찾기)

Baidu 백과사전: 나르시서스 수(나르시시즘 수)는 초완전 디지털 불변량(pluperfect digital invariant, 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;

}

Supongo que te gusta

Origin blog.csdn.net/Kirihara_Yukiho/article/details/123159754
Recomendado
Clasificación