c语言编程题目:水仙花数

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


编程思路分析

  1. 输入一个正整数N。N为位数,N=3就表明是3位数。
  2. 判断N位数中有多少水仙花数。
  3. 输出水仙花数,并注意格式。

重点运算思路

  1. 一共有个部分。第一部分:怎么把n = 3和100联系起来,即将位数转换为具体的数字(3 → 100)。
    可以用while循环,加上变量就可以解决。
  2. 第二部分如何遍历所有的数字?
    用while循环即可。
  3. 第三部分:在遍历中怎么计算每位数字的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(i<n){
        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( cnt<n ){
                p *= d;
                cnt ++;
            }
            
            sum += p;
        }while(x>0);
            
        if(sum == i){
            printf("%d\n", sum);
        }
        
        i++;
    }
    
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/770716.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【日常linux操作命令】

文章目录 1、查看服务器信息1.1、查看内存1.2、查看磁盘1.3、查看CPU信息 2、清理内存缓存2.1、清理PageCache&#xff1a;2.2、清理Dentries和Inodes&#xff1a;2.3、同时清理PageCache、Dentries和Inodes&#xff1a;2.4、清理日志文件2.5、清理临时文件 3、查找文件3.1、查…

WPF使用外部字体,思源黑体,为例子

1.在工程中新建文件夹&#xff0c;命名为“Font"。 2.将下载好的字体文件复制到Font文件夹。 3.在工程中&#xff0c;加入静态资源 <Window.Resources><FontFamily x:Key"SYBold">/AnalyzeImage;Component/Font/#思源黑体 CN Bold</FontFamily…

2.3 Mac OS安装Python环境

Mac OS安装Python环境 和 Linux 发行版类似&#xff0c;最新版的 Mac OS X 也会默认自带 Python 2.x。 我们可以在终端&#xff08;Terminal&#xff09;窗口中输入python命令来检测是否安装了 Python 开发环境&#xff0c;以及安装了哪个版本&#xff0c;如下所示&#xff1…

解決flask-restful提示Did not attempt to load JSON data 问题

在使用flask-restfull进行API开发的时候。一旦我使用类似下面的代码从url或者form中获得参数就会出现报错&#xff1a;Did not attempt to load JSON data because the request Content-Type was not ‘application/json’。 代码如下&#xff1a; # Flask_RESTFUl数据解析 f…

机器学习神经网络由哪些构成?

机器学习神经网络通常由以下几个主要组件构成&#xff1a; 1. **输入层&#xff08;Input Layer&#xff09;**&#xff1a;输入层接受来自数据源&#xff08;例如图像、文本等&#xff09;的原始输入数据。每个输入特征通常表示为输入层中的一个节点。 2. **隐藏层&#xff…

ROS1通过rosbridge在局域网中控制turtle进行运动(PC和手机)--番外,清除浏览器缓存

在上一节的文章当中&#xff0c;因为编写好了JS文件&#xff0c;直接上传到在局域网内的浏览器当中&#xff0c;但是在本地更新的过程当中&#xff0c;无法对齐进行上传和更新&#xff0c;原因是浏览器在加载一次JS文件的时候&#xff0c;会自动将其加入到缓存当中&#xff0c;…

基于JavaScript的快递管理系统

基于JavaScript的快递管理系统 开发语言&#xff1a;Java 开发工具&#xff1a;MyEclipse 6.0.1 技术&#xff1a;Spring SpringMVC MyBatis 数据库&#xff1a;mysql 浏览器&#xff1a;IE8.0 系统展示 登陆页面 注册页面 快递员页面 派单员订单管理页面 派单员订单添…

【牛客】SQL147 筛选限定昵称成就值活跃日期的用户

描述 现有用户信息表user_info&#xff08;uid用户ID&#xff0c;nick_name昵称, achievement成就值, level等级, job职业方向, register_time注册时间&#xff09;&#xff1a; iduidnick_nameachievementleveljobregister_time11001牛客1号10002算法2020-01-01 10:00:00210…

mysql 存储过程示例

一、建表语句 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ---------------------------- -- Table structure for user_info -- ---------------------------- DROP TABLE IF EXISTS user_info; CREATE TABLE user_info (id int(0) NOT NULL AUTO_INCREMENT,name varc…

网络七层模型之传输层:理解网络通信的架构(四)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

每日一练:LeeCode-21、合并两个有序链表【链表+递归+非递归】

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输出&#xff1a;[…

【jvm】各个java版本默认的垃圾回收器

要看Java默认的垃圾回收器 可以使用以下命令 java -XX:PrintCommandLineFlags -version 各个java版本默认的垃圾回收器 从Java 1&#xff08;JDK 1.0&#xff09;开始到Java 21之间的各个Java版本默认的垃圾回收器经历了一系列的演变。以下是一些主要版本的Java默认垃圾回收…

力扣面试150 直线上最多的点数 数学 直线斜率 欧几里得求最大公约数

Problem: 149. 直线上最多的点数 思路 &#x1f468;‍&#x1f3eb; 参考题解 &#x1f496; 枚举直线 枚举统计 时间复杂度: O ( n 3 ) O(n^3) O(n3) 空间复杂度: O ( 1 ) O(1) O(1) class Solution {public int maxPoints(int[][] points){int n points.length;int…

数据挖掘终篇!一文学习模型融合!从加权融合到stacking, boosting

模型融合&#xff1a;通过融合多个不同的模型&#xff0c;可能提升机器学习的性能。这一方法在各种机器学习比赛中广泛应用&#xff0c; 也是在比赛的攻坚时刻冲刺Top的关键。而融合模型往往又可以从模型结果&#xff0c;模型自身&#xff0c;样本集等不同的角度进行融合。 数据…

【牛客】SQL148 筛选昵称规则和试卷规则的作答记录

描述 现有用户信息表user_info&#xff08;uid用户ID&#xff0c;nick_name昵称, achievement成就值, level等级, job职业方向, register_time注册时间&#xff09;&#xff1a; iduidnick_nameachievementleveljobregister_time11001牛客1号19002算法2020-01-01 10:00:00210…

BC98 序列中删除指定数字

题目 描述 有一个整数序列&#xff08;可能有重复的整数&#xff09;&#xff0c;现删除指定的某一个整数&#xff0c;输出删除指定数字之后的序列&#xff0c;序列中未被删除数字的前后位置没有发生改变。 数据范围&#xff1a;序列长度和序列中的值都满足 1≤&#xfffd;≤…

Python数值和符号算法计算及3D视图物理数学波形方程

要点 Python数值和符号计算及3D可视化以下物理方程&#xff1a; 物理数学方程分析&#xff1a;二分算法和牛顿-拉夫森算法解方程根。最小二乘法拟合方程和数据。短期傅里叶变换和小波分析非平稳信号。使用主成分分析复杂和大型数据集&#xff0c;提取时空相关性&#xff0c;分…

Code Review 最佳实践

理论上讲&#xff0c;Code Review 对开发人员来说是件好事。它能帮助我们&#xff1a; 提高我们代码的可读性尽早发现漏洞和安全问题提供一个安全网络&#xff0c;以确保所有任务都得到充分完成 但现实是&#xff0c;code review 对于所有相关人员来说通常是一种不舒服的体验…

xcode生成静态库.a

一、生成静态库 1.打开 Xcode 创建一个新的 Static Library 工程&#xff0c;取名applestudio 2.创建工程完毕后&#xff0c;简化目录结构 删除系统自动创建的同名类&#xff1a;applestudio.h和applestudio.m 把自己的代码复制进去&#xff0c;如例子&#xff1a;guiconnect.h…

Unix环境高级编程-学习-08-自旋锁与屏障

目录 一、多线程相关文章链接 二、自由抒发 1、自旋锁 2、屏障 三、函数介绍 1、pthread_spin_init &#xff08;1&#xff09;声明 &#xff08;2&#xff09;作用 &#xff08;3&#xff09;参数 &#xff08;4&#xff09;返回值 &#xff08;5&#xff09;注意点 …