本文主要是介绍四叶玫瑰数 ← 自幂数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【题目描述】
输入两个正整数 n 和 m,请将 n~m(1≤n≤m≤1000000)之间(含 n 和 m)的四叶玫瑰数按从小到大的顺序输出。
四叶玫瑰数,即四位的自幂数,其各位上的数字的四次方之和等于其本身。四位的四叶玫瑰数共有3个,分别是:1634、8208、9474。
【知识点:自幂数】
一个 n 位的自然数,若它各位上的数字的 n 次幂之和等于它本身,则称之为 n 位自幂数。
一位自幂数:独身数 → 0,1,2,3,4,5,6,7,8,9
二位自幂数:/
三位自幂数:水仙花数 → 153,370,371,407
四位自幂数:四叶玫瑰数 → 1634,8208,9474
五位自幂数:五角星数 → 54748,92727,93084
六位自幂数:六合数 → 548834
七位自幂数:北斗七星数 → 1741725,4210818,9800817,9926315
八位自幂数:八仙数 → 24678050,24678051,88593477
九位自幂数:九九重阳数 → 146511208,472335975,534494836,912985153
十位自幂数:十全十美数 → 4679307774
【算法代码】
#include <bits/stdc++.h>
using namespace std;bool isRoseNumber(int x) {int in=x;int sum=0;int t;while(x>0) {t=x%10;sum+=pow(t,4);x/=10;}return sum==in;
}int main() {int n,m;cin>>n>>m;for(int i=n; i<=m; i++) {if(isRoseNumber(i)) cout<<i<<" ";}return 0;
}/*
in:
1000 10000out:
1634 8208 9474
*/
【参考文献】
https://www.meipian.cn/4a249q8z
https://blog.csdn.net/M1stic/article/details/135315290
https://blog.csdn.net/weixin_47786582/article/details/122509330
这篇关于四叶玫瑰数 ← 自幂数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!