栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

水仙花数问题详解(根据输入确定位数和幂次)。

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

水仙花数问题详解(根据输入确定位数和幂次)。

一个根据输入数字求n位水仙花数的编程问题,c++实现:

 看到问题描述后,首先想到用循环遍历n位数字然后进行是否相等的检查,循环遍历n位数字比较容易,还要取n位数字上的每位数字进行求幂和求和与n位数字相比较,然后输出条件符合的数字,大体思路是如此,下面直接上代码

#include 

using namespace std;

int main()
{
    int n,a=1,b,c,d=0,z=0,sum_i;
    cout<<"请输入位数(幂数):";
    cin>>n;
    int arr[n];//建立一个长度为n的数组,用来存储遍历的数的每位上的数字
    for(int i=1; i 

1、想要进行循环我们需要用到n位的起始值,如3位数是100,四位数是1000,第一个for循环求出n位的基准值a,a可以用来做我们最外层for循环的初始值,而终止值就是a*10,如3位数是999,四位数是9999;在下面取遍历数的每位上的数字时,我们也会用到这里的a值。

2、建立遍历循环后,就应该取遍历数每位的数字了,前面定义了一个长度为n的数组,就是为了存储每位上的数字,定义for循环运行n次取数字,用n位的遍历数字对n位的基准数字做除法即可得到最高位数字(int为整形自动省略小数点后数字),遍历数字对基准数字取余数后会去掉最高位,然后基准数字除10,依次取到n个值存入数组中。

3、然后进行对数组中的每个元素取n次幂,然后进行相加,这里用到两个循环,比较容易理解。相加的值与遍历数字i进行比较,相等则输出水仙花数。

备注:这里输入的数字为3到7才会有符合的水仙花数。

分享完毕,小白一个,随手而作。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/290953.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号