0
点赞
收藏
分享

微信扫一扫

水仙花数1-99999筛查

星河出山 2022-01-12 阅读 73
int main()
{
	
	int x = 0;//定义一个从1到99999的数
	int j = 0;//用来记水仙花数的个数
	for (x = 1; x < 99999; x++)//开始循环,从1到99999寻找
	{
		int k = x;//定义一个变量接受x的值,不能再整个循环里改变x进来的值,因为后面要用来比较
		int i = 0;//数组下标
		int index = 1;//x的位数,也就是每一位的次方数
		int a[10] = {0};//定义一个数组用来存放x的每一位
		double num = 0;//定义一个变量接受x的每一位的次方的和
		while (k>9)//判断位数,index从1开始而不从0开始是因为当x剩下一位时不会进入此循环,但是最后一位也算一位
		{
			a[i]= k % 10;
			k = k / 10;
			index++;
			i++;
		}
		i++;
		a[i] = k;//i自增依次,放入x最后一位
		int length = i;//将数组下标数长度用来限制下面的循环
		for ( i = 0; i <= length; i++)
		{
			num += pow(a[i], index);	//循环每进来一次,每一位的数的次方都会加上		 
		}
		if (num == x)//判断是否为水仙花数
		{
			printf("%d\n", x);
			j++;//记录个数
		}
	}
	printf("水仙花数一共%d个",j);
	system("pause");
	return 0;
}
举报

相关推荐

计算“水仙花数”

求水仙花数

水仙花数(java)

打印水仙花数

JAVA——水仙花数

c水仙花数

0 条评论