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

恩施市建设银行网站网站维护合同

恩施市建设银行网站,网站维护合同,长春网络公司排名,网站主题如何制作目录 ​编辑 ----------------------------------------begin-------------------------------------- 一、什么是水仙花数? 二、问题分析 确定数字的位数:计算输入数字的位数 n。 分离每一位数字:例如将 153 分离为 1、5、3。 计算各…

目录

​编辑

----------------------------------------begin--------------------------------------

一、什么是水仙花数?

二、问题分析

确定数字的位数:计算输入数字的位数 n。

分离每一位数字:例如将 153 分离为 1、5、3。

计算各位的n次方和:将每一位的 n 次方相加。

判断是否相等:比较和与原数是否相等。

三、算法设计

计算位数:

分离每一位:

计算次方和:

判断逻辑:

四、代码实现

完整代码:

代码解析:

五、运行结果

六、关键问题与优化

为什么从100开始遍历?

如何处理更大的数字?

手动实现幂运算(避免依赖 math.h):

七、总结

路过的佬们点点关注哦~

你们的鼓励是我前进的动力~

----------------------------------------------end------------------------------------------


----------------------------------------begin--------------------------------------

一、什么是水仙花数?

水仙花数(Narcissistic Number),又称阿姆斯特朗数,是指一个 n 位数的正整数,其各位数字的 n 次方之和等于它本身。例如:

  • 153 是3位水仙花数:13+53+33=15313+53+33=153

  • 9474 是4位水仙花数:94+44+74+44=947494+44+74+44=9474


二、问题分析

要实现水仙花数的判断,需要解决以下问题:

  • 确定数字的位数:计算输入数字的位数 n
  • 分离每一位数字:例如将 153 分离为 153
  • 计算各位的n次方和:将每一位的 n 次方相加。
  • 判断是否相等:比较和与原数是否相等。


三、算法设计

  • 计算位数
    • 通过循环除以10统计次数,直到数字变为0。

  • 分离每一位
    • 使用取模(% 10)获取最后一位,再通过整除(/ 10)移除该位。

  • 计算次方和
    • 调用 math.h 中的 pow 函数,或手动实现幂运算。

  • 判断逻辑
    • 如果次方和等于原数,则为水仙花数。

四、代码实现

  • 完整代码:
#include <stdio.h>
#include <math.h>int isNarcissistic(int number) {int original = number;int sum = 0;int digits = 0;int temp = number;// 计算位数while (temp != 0) {temp /= 10;digits++;}// 恢复原始值temp = original;// 计算各位的次方和while (temp != 0) {int remainder = temp % 10;sum += pow(remainder, digits);temp /= 10;}// 判断是否相等return (sum == original);
}int main() {int lower = 100;   // 水仙花数至少是三位数int upper = 9999;  // 示例范围扩大到四位数printf("水仙花数(%d - %d):\n", lower, upper);for (int i = lower; i <= upper; i++) {if (isNarcissistic(i)) {printf("%d\n", i);}}return 0;
}
  • 代码解析:
  • isNarcissistic函数

    • 计算位数:通过 while 循环统计除以10的次数。

    • 分离各位数字:通过 % 10 取余和 / 10 整除操作。

    • 次方和计算:使用 pow(remainder, digits) 计算每位数字的 n 次方。

  • main函数

    • 遍历指定范围(如100-9999)内的所有数字。

    • 调用 isNarcissistic 判断是否为水仙花数并输出。

五、运行结果

水仙花数(100 - 9999):
153
370
371
407
1634
8208
9474

六、关键问题与优化

  • 为什么从100开始遍历
    • 水仙花数至少是三位数(如153),两位数无法满足条件。

  • 如何处理更大的数字
    • 调整 upper 的值即可,但需注意数据溢出问题(int 类型上限约为 231−1231−1)。

  • 手动实现幂运算(避免依赖 math.h):
int power(int base, int exponent) {int result = 1;for (int i = 0; i < exponent; i++) {result *= base;}return result;
}

七、总结

通过本博客,你学会了:

  1. 水仙花数的定义与数学原理。

  2. 分步骤算法设计:计算位数、分离数字、次方求和。

  3. C语言实现技巧:循环、条件判断、函数封装。

  4. 扩展思路:如何优化代码、处理更大范围的数字。


动手挑战:尝试修改代码,找出所有5位水仙花数(如54748),并在评论区分享你的结果!

路过的佬们点点关注哦~

你们的鼓励是我前进的动力~

----------------------------------------------end------------------------------------------

http://www.yayakq.cn/news/162975/

相关文章:

  • 山西临汾建设局网站自动发外链工具
  • 可发外链的高权重网站最新热点新闻
  • 域名注册平台的网站怎么做成都网站制作设计
  • 做团购的家居网站有哪些长沙seo外包平台
  • 毕业设计做网站low网站推广设计
  • 青羊区企业网站建设策划榆林市网站seo
  • 呼和浩特企业网站浅谈海尔的电子商务网站建设
  • 泉州公司做网站青海保险网站建设公司
  • 宁波网站建设佳选蓉胜网络好在拼多多开网店的流程
  • 装修网站建设公司怎样做动漫照片下载网站
  • 广州市建设注册中心网站首页域名备案官网
  • 智慧团建网站没有验证码建设网站网
  • 南京app网站开发公司青岛seo用户体验
  • 人才招聘网站开发+源代码橘子seo
  • 网站功能建设中事件营销策略
  • 中国婚恋网站排名如何做微信小程序开发
  • 海口北京网站建设建一个网站需要多少钱
  • 小说网站开发中遇到的问题电商网站页面
  • 对京东网站建设的总结企业网站建设的策略
  • 沈阳专业做网站开发公司佛系汉化组 wordpress com
  • 韩国美容网站 模板最近三天发生的重要新闻
  • 扬中网站建设多少钱网站做淘宝客收入咋样
  • 藤县建设局网站建造师在建设部网站何时更新
  • 湘潭房产网站建设河南省住房城乡建设厅官方网站
  • 企业门户网站案例推广型网站建设电话
  • 沈阳网站建设公司哪家好联盟或专业团体的官方网站的建设
  • 做网站动图的软件企业公司网站开发
  • 建设艺术网站需要多少钱重庆市建设工程信息网官网公示
  • 大气手机网站模板免费下载中石化石油工程建设公司官方网站
  • 建设银行的网站用户名是什么沧州英文网站制作