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

水仙花数(c++版本)(数一c语言作业)

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

水仙花数(c++版本)(数一c语言作业)

一、题目介绍

题目:

输入一个n,输出一个长度为n的水仙花数,长度为n的水仙花数的定义:水仙花数的每一位的n次幂之和等于其本身

输入格式:

第一行输入一个n。

输出格式:

输出位数所有n的水仙花数。每输出一个数空一行。

输入样例:

3

输出样例:

153
370
371
407

二、思路以及其解析

注意:这里我们用i来写个for循环遍历pow(10,n-1)到pow(10,n)之间的所有的数。

三、代码展示
​
​
#include
using namespace std;
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define ll long long
#define endl "n"
#define PII pair
const int N=1e5+10;
int n;
int panduan(int x)//建立一个判断函数,判断一个数是否为水仙花数。
{
	int ans[N];//ans用来存放x的每一位数
	int l=1;//l维护的是数组ans的下标
	int p=x;//因为接下来x的值会发生变化,然而判断是否为水仙花数的时候需要将ans与原来的x是否相等来判断。所有先用一个p将x的值预留一下。
	while(x!=0)
	{
		ans[l]=x%10;//这里将x的个位数到高位数的每一位放到ans数组里面去。
		x/=10;
		l++;
	}
	int sum=0;//这里的sum维护的是代表的每一位的n次幂和
	for(int i=1;i<=l-1;i++)//这里将ans数组的每一位逐个遍历,目的是求每一位的n次方之和
	{
		sum+=pow(ans[i],n);//这里的sum维护的是代表的每一位的n次幂和
	}
	if(sum==p)return 1;//当x是水仙花数的时候函数返回一个1,如果sum==p即每位数的n次放和等于其本身的时候为水仙花数
	else return 0;//当x不是水仙花数的时候函数返回一个0,如果sum!=p即每位数的n次放和不等于其本身的时候不为水仙花数
}
int main()
{
	cin>>n;//按照题目要求这里输入一个n。
	for(int i=pow(10,n-1);i 

 前面的头文件和预留处理不用看。属于本人个人的c++编码习惯。注意:c++当中cin>>a等价于scanf("%d",&a)表示输入整形变量a。cout<等价于printf("%dn",a)表示输出a并且换行。

四、留言

推荐两道类似题目hh

登录—专业IT笔试面试备考平台_牛客网

3644. 水仙花数 - AcWing题库

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

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

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