C语言之水仙花数

article/2025/7/3 20:55:21

题目要求:
水仙花数是指一个N位正整数(N>=3),它的每一位上的数字的N次幂之和等于它本身。例如:153 = 13+53+33。本题要求编写程序,计算所有N位水仙花数。
输入格式:
输入在一行中给出一个正整数N(3<=N<=7)。
输出格式:
按递增顺序输出所有的N位水仙花数,每个数字占一行。

输入样例:
3
输出样例:
153
370
371
407

(代码主要采用while循环作为解题方法。)
代码如下:
方法确定初始值有两种形式while循环和for循环需要确定好循环的次数,在while循环中一定不要忘记为i进行赋值,必须有值才能进行循环,否则(我也没想出会发生什么)只能输出第一个printf的内容。


下面是错误示范的结果以及错误代码在这里插入图片描述

#include <stdio.h>
int main()
{int n;scanf("%d",&n);int i ;int first;first =1;while (i<n){first*=10;i++;}printf("first=%d\n",first);i=first;while(i<first*10){int t=i;int sum=0;do{int d=t%10;t/=10;int p=d;int j=1;while (j<n){p=p*d;j++;}sum =sum+p;}while (t>0);if(sum==i){printf("%d ",sum);}i++;}return 0;
}

正确示范,案例一(一定要对i进行赋值)


#include <stdio.h>
int main()
{int n;scanf("%d",&n);int j,d,p,t;int first;int sum;int i =1;first =1;// for ( i = 0; i <n; i++)// {//     first*=10;//     i++;// }while (i<n){first*=10;i++;}printf("first=%d\n",first);i=first;while(i<first*10){t=i;sum=0;do{d=t%10;t=t/10;p=d;j=1;while (j<n){p=p*d;j++;}sum =sum+p;}while (t>0);if(sum==i){printf("%d ",i);}i++;}return 0;
}

这一个是我参考的例子,大同小异,但是我没有加注释,你可以看他的注释,就在确定范围时有点不一样,也没说明我的问题,还得一点点的修改

#include <stdio.h>
int main(void)
{int n;						//要求输入的n要大于2int d;						//d存储要判断的正整数的每一位的数字int t,sum=0;int min=1,max=10;			//输入n后计算的上下边界,max是min的10倍int i,j;					//最内层while循环的两个重要数值scanf("%d",&n);i = n;while(--i){					//取代i--,先减后判断,循环内可以少计算一次min*=10;max*=10;}while(min<max){t = min;					//初始化为当前要判断的正整数sum=0;						//进入循环之前要初始化while(t>0){d=t%10;t/=10;j=d;i=1;				//要在进入下一个循环之前对i,j进行初始化while(i<n){j*=d;			//用于存储每一位数字的N次方的结果i++;}sum += j;			//对各位数字的N次方加和}if(min==sum)printf("%d\n",min);min++;}
}

http://chatgpt.dhexx.cn/article/xHykrC0K.shtml

相关文章

C语言计算水仙花数的两种方法

水仙花数指的是一个n位数&#xff08;n>3&#xff09;,他的每一个位上的数字的n次幂之和等于他的本身&#xff0c;求出所有的三位数的水仙花数。 方法一&#xff1a; 先遍历100~999然后拆出每一个数的个位、十位、百位&#xff0c;最后求三次幂之和是否为此数 #include<…

大数据中台

数据中台的由来 数据中台最早是阿里提出的&#xff0c;但真正火起来是2018 年&#xff0c;我们能感受到行业文章谈论数据中台的越来越多。大量的互联网、非互联网公司都开始建设数据中台。为什么很多公司开始建设数据中台&#xff1f;尽管数据中台的文章很多&#xff0c;但是一…

浅谈大型互联网企业入侵检测及防护策略

前言 如何知道自己所在的企业是否被入侵了&#xff1f;是没人来“黑”&#xff0c;还是因自身感知能力不足&#xff0c;暂时还无法发现&#xff1f;其实&#xff0c;入侵检测是每一个大型互联网企业都要面对的严峻挑战。价值越高的公司&#xff0c;面临入侵的威胁也越大&#…

国家级专精特新小巨人企业是什么?

什么是国家级专精特新小巨人企业 首先需要了解什么是专精特新&#xff0c; 专-是指专业化&#xff0c;采用专项技术或工艺通过专业化生产制造的专用性强、专业特点明显、市场专业性强的产品。 精-是指精细化&#xff0c;采用先进适用技术或工艺&#xff0c;按照精益求精的理念…

什么是小规模纳税人、小型微利企业、小微企业

什么是小规模纳税人、小型微利企业、小微企业?这下终于搞明白了.自今年不断的发布减税降费的优惠政策以来&#xff0c;很多财务人员都将小微企业、小型微利企业、小规模纳税人的概念混淆&#xff0c;以至于无法合理享受相应的优惠政策。 一、首先&#xff0c;我们从概念上区分…

中小企业 数量 e-mail_【深圳】市中小企业服务局关于发布2021年深圳市工业设计发展扶持计划工业设计走进中小微制造企业扶持项目申请指南的通知...

点击上方蓝字关注我哦 申请指南 一、支持方向重点支持中小微制造企业为 提升产品差异化、增强品牌个性化&#xff0c; 向专业工业设计企业购买工业设计服务的项目。 二、支持数量、方式及标准方式 (一)支持数量&#xff1a;有数量限制&#xff0c;受年度工业设计业发展专项资金…

2021年深圳市专精特新中小企业遴选申报指南

一、专精特新申报对象 主营业务和发展重点符合国家产业政策及相关要求&#xff0c;专业化、精细化、特色化、新颖化特征明显&#xff0c;创新能力强、发展速度快、运行质量高、融资能力强、经济效益好的中小企业。所称中小企业的标准&#xff0c;按照工业和信息化部、国家统计局…

excel--统计上大中小微企业划型判断工具

用Excel判断企业划型 企业划型 统计上大中小微企业划分标准(2011)300号是在统计工作上划分大中小微企业的标准&#xff0c;是为贯彻落实工业和信息化部、国家统计局、国家发展改革委、财政部制定了《关于印发中小企业划型标准规定的通知》&#xff0c;用来规范中小企业。 后…

工信部行业划分标准 《关于印发中小企业划型标准规定的通知(工信部联企业〔2011〕300号)》

官网下载地址&#xff1a;http://www.miit.gov.cn/n1146285/n1146352/n3054355/n3057278/n3057286/c3592332/content.html 网盘下载地址&#xff1a;https://pan.baidu.com/s/1yBaygXhrzP_Rahz_r1GNUw &#xff08;一&#xff09;农、林、牧、渔业。营业收入20000万元以下的为…

Android 耳返实践 OpenSL ES AAudio Oboe

耳返概述&#xff1a; 耳返主要实现监听的功能&#xff0c;在低延时的情况下可以给主播一个比较真实音频的反馈&#xff0c;在演唱会等专业场景里比较常用。 技术实现上来说就是要时时的把录制进的音频数据立刻播放出去&#xff0c;当然这个过程要低延迟。 AudioRecord,Audio…

Android 音频 Native API OpenSL ES 简要介绍

OpenSL ES 全称 (Open Sound Library for Embedded Systems),嵌入式音频加速标准。 OpenSL ES 是无授权费、跨平台、针对嵌入式系统精心优化的硬件音频加速API。它为嵌入式移动多媒体设备上的本地应用程序开发者提供标准化, 高性能,低响应时间的音频功能实现方法,并实现软/硬…

Android12之OpenSL ES通过StreamPlayer和AudioToCbRenderer播放流程(二十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

【Android音视频】OpenSL ES音频播放示例一

本文将实现一个使用OpenSL ES来播放assets目录下mp3歌曲的demo&#xff08;实际推荐大家使用oboe库&#xff09;。 Android NDK之高性能音频https://developer.android.google.cn/ndk/guides/audio/opensl/getting-started Oboe is a C library that makes it easy to build …

OpenSL ES总结

OpenSL ES - 嵌入式音频加速标准。OpenSL ES™ 是无授权费、跨平台、针对嵌入式系统精心优化的硬件音频加速API。它为嵌入式移动多媒体设备上的本地应用程序开发者提供标准化, 高性能,低响应时间的音频功能实现方法&#xff0c;并实现软/硬件音频性能的直接跨平台部署&#xff…

最简单的OpenSL播放PCM实时音频

这里是c语言写的给android用的&#xff0c;可以拿到其他平台使用。既然是最简单的&#xff0c;肯定使用起来就是超级简单如回调方法就一句代码。这里简单说一下使用要注意的地方: 1.如果想要使用opensl的一些功能如音量控制&#xff1a; 只是这样是不可以的&#xff0c;拿到…

Android12之OpenSL ES通路hidl flag与hal flag转换原理(十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

分析OpenSL回声Demo

分析OpenSL回声Demo 前言 回声App是google的一个使用openSL的示例。 代码地址: https://github.com/android/ndk-samples/tree/main/audio-echo 通过代码可以学习到如何简单使用OpenSL采集音频&#xff0c;播放音频。 Demo的设计图 流程 App的大致流程为&#xff1a; 使用…

Android音视频【十三】OpenSL ES介绍基于OpenSL ES实现音频采集

人间观察 勿再别人的心中修行自己&#xff0c; 勿再自己的心中强求别人。 前言 最近写文章有点偷懒了&#xff0c;离上次写文章大概一个月了。 一般Android音频的采集在java层使用AudioRecord类进行采集。 但是为什么要学OpenSL呢?除了C/C的性能优势(不过其实java的效率也不…

Harmony Native开发-我的OpenSL ES录音机

零、写在前面 最早我是在Android上开发的OpenSL ES。但最近看了下鸿蒙的文档&#xff0c;发现它的底层库也支持OpenSL ES&#xff0c;这我的兴致就来了。简单了解了一下鸿蒙的Native开发&#xff0c;就着手开发起来。移植过程中发现其实对Android程序员还是相当友好的&#xf…