综治暨平安建设网站,秦皇岛网站建设哪家好,erp企业管理系统软件排名,pi币最新消息题目#xff1a;水仙花数是指一个N位正整数#xff08;N3#xff09;#xff0c;它的每位上的数字的N次幂之和等于它本身。例如#xff1a;153 1^3 5^3 3^3。要求#xff1a;计算所有N位水仙花数。给出一个正整数N#xff08;3 N 7#xff09;#x…题目水仙花数是指一个N位正整数N3它的每位上的数字的N次幂之和等于它本身。例如153 1^3 5^3 3^3。要求计算所有N位水仙花数。给出一个正整数N3 N 7按递增顺序输出所有水仙花数每个数字占一行。 编程思路分析
输入一个正整数N。N为位数N3就表明是3位数。判断N位数中有多少水仙花数。输出水仙花数并注意格式。 重点运算思路
一共有个部分。第一部分怎么把n 3和100联系起来即将位数转换为具体的数字3 → 100。 可以用while循环加上变量就可以解决。第二部分如何遍历所有的数字 用while循环即可。第三部分在遍历中怎么计算每位数字的N次幂并且得出它们的n次幂之和 可以再次使用一个循环来分解整数并且再用一个循环来计算次幂。每分解一个位数就计算它的N次幂并且先加入到一个sum变量中接着再计算下一个位数以此类推。 实现代码如下 #include stdio.h int main(){ int n; scanf(%d, n); //遍历所有的三位数 //若n 3则要遍历100-999. //第一个难点怎么把n 3和100联系起来 int i 1; int t 1; while(in){ t * 10; i; } //得到t 100. printf(t %d\n, t); //第二个难点如何遍历 i t; //i 100 //t 1000 while(i t*10){ //接下来要分解i的每一位数算出它的n次幂然后再求和求起来 //※难点三怎么算一个数的n次幂 int x i;//用x变量记录i因为待会儿会分解i。 int sum 0;//sum 分解后每一位数n次幂之和。 //用循环来解决 do { int d x%10; x / 10; //x的n次方怎么算 int cnt 1; int p d; while( cntn ){ p * d; cnt ; } sum p; }while(x0); if(sum i){ printf(%d\n, sum); } i; } return 0; }