当前位置: 首页 > news >正文

【C语言】案例:输出n位水仙花数

1.题目

输入一个整数n,输出所有n位的水仙花数

2.代码

#include <stdio.h>
#include <math.h>// 计算数字的位数
int countDigits(int num) {int count = 0;while (num != 0) {num /= 10;count++;}return count;
}// 计算水仙花数
void findNarcissisticNumbers(int n) {int start = pow(10, n - 1);int end = pow(10, n);for (int i = start; i < end; i++) {int num = i;int sum = 0;// 计算每位数字的 n 次幂之和while (num != 0) {int digit = num % 10;sum += pow(digit, n);num /= 10;}// 如果和等于原数,即为水仙花数if (sum == i) {printf("%d\n", i);}}
}int main() {int n;// 输入 nprintf("输入一个整数 n:");scanf_s("%d", &n);// 输出所有 n 位的水仙花数printf("%d 位的水仙花数有:\n", n);findNarcissisticNumbers(n);return 0;
}

3.解析

1.main 函数是程序的入口。首先,它通过 printf 提示用户输入一个整数 n,然后使用 scanf 获取用户输入的值。接着,它调用 findNarcissisticNumbers 函数,输出所有n位的水仙花数。

2.函数 findNarcissisticNumbers 用于寻找所有n位的水仙花数。它通过迭代从 start 到 end 的范围内的所有数字,计算每个数字各个位上的数字的n次幂之和,如果和等于原数字,则该数字是水仙花数。找到水仙花数后,使用 printf 输出到控制台。

3.函数 countDigits 用于计算一个整数的位数。它通过不断将数字除以10,直到数字变为0,来统计数字的位数。

http://www.lryc.cn/news/297110.html

相关文章:

  • 代码随想录算法训练营第四十六天(动态规划篇)|01背包(滚动数组方法)
  • 【QT+QGIS跨平台编译】之三十:【NetCDF+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
  • 从0开始图形学(光栅化)
  • B站弹幕分析系统
  • 戴上HUAWEI WATCH GT 4,解锁龙年新玩法
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之StepperItem组件
  • 2024-02-08 Unity 编辑器开发之编辑器拓展1 —— 自定义菜单栏与窗口
  • Intellij IDEA各种调试+开发中常见bug
  • 文件上传-Webshell
  • 掌握虚拟化与网络配置之道:深入浅出VMware及远程管理技巧
  • 【漏洞复现】狮子鱼CMS某SQL注入漏洞
  • Python学习之路-Tornado基础:安全应用
  • 6.0 Zookeeper session 基本原理详解教程
  • 生成式人工智能攻击的一年:2024
  • K8S之Namespace的介绍和使用
  • 封装sku组件
  • Unity笔记:相机移动
  • Java项目管理01-Maven基础
  • 计算机网络(第六版)复习提纲30
  • 基于SSM的图书管理系统
  • 【GAMES101】Lecture 19 相机
  • 《走进科学》灵异事件:Nginx配置改了之后一直报错
  • Select 选择器 el-option 回显错误 value
  • 【51单片机Keil+Proteus8.9】门锁控制电路
  • 比较Kamailio和OpenSIPS的重写contact函数
  • 【ETOJ P1046】斐波那契数列 题解(数学+动态规划)
  • 编码技巧——基于RedisTemplate的RedisClient实现、操作Lua脚本
  • Asp .Net Core 系列:Asp .Net Core 集成 Panda.DynamicWebApi
  • 【PTA浙大版《C语言程序设计(第4版)》|编程题】习题7-3 判断上三角矩阵(附测试点)
  • JVM 性能调优 - 参数调优(3)