C语言--for循环--求N位数水仙花数(3<=N<10)

该篇文章介绍了如何使用C语言编写一个程序,通过循环和计算来找出指定位数(如3位数)的水仙花数,即每个位上的数字立方之和等于原数本身的整数。
摘要由CSDN通过智能技术生成
#include <stdio.h>

int main()
{
	int N,sum;						    //声明输入-N,输出-sum
	int Min, Max;					    //声明最小值-Min,最大值Max
	int a, b, c, d, e;				    //声明--运算整型--只参与运算,不输出数值-可以二次使用
	printf("输入需要求的水仙花数位数:");
	scanf("%d", &N);					//输入需要求取的水仙花数位数--N
	a = 1;								//给--a--赋值
	for (b = 1;b < N;b++)				//求出输入位数数值的范围
	{
		a *= 10;
	}
	Min = a;							//N位数--最小值--Min;
	Max = a * 10 - 1;					//N位数--最大值--Max;
	printf("%d位数的水仙花数有:", N);
	for (;Min <= Max;Min++)				//从--Mix--到--Max--递增;
	{
		c = 1;							//初始化-c-值
		sum = 0;						//初始化-sum-值
		for (a = 0;a < N;a++)			//初始化-a-值---二次运用
		{
			d = (Min / c) % 10;			//提取位数上的数值
			e = 1;						//初始化-e-值
			for (b = 0;b < N;b++)		//初始化-b-值---二次运用     //计算输入值的N次方
			{
				e *= d;
			}
			c *= 10;
			sum += e;					//求和
		}
		if (sum == Min)					//判断数值是否是水仙花数
		{
			printf(" %d", sum);
		}
	}
	printf("\n");
	return 0;
}

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值