水仙花数(加扩展自幂数)

简介: 水仙花数(加扩展自幂数)

什么是自幂数?

如果在一个固定的进制中,一个n位自然数等于自身各个数位上数字的n次幂之和,则称此数为自幂数。

eb6f13b3d14c461a932cffef1e1de1c8.png


水仙花数

求“水仙花数”并输出。

“水仙花数”是指一个3位数,其各位数字的立方之和确好等于该数本身.

如:153=1^3+5^3+3^3,则153是一个“水仙花数”。


思路

因为水仙花数在100~999之间,所以直接for循环变量i,然后分别求出百位数,十位数,个位数,

最后立方和,判断是否相等就可以。

代码如下:

#include<stdio.h> 
#include<math.h>
int main()
{
  int i = 0;
  for (i = 100; i <1000; i++)//控制i在100~999之间
  {
    int a = i / 100;
    int b = i / 10 % 10;
    int c = i % 10;
    if (i == pow(a, 3) + pow(b, 3) + pow(c, 3))
    {
      printf("%d ", i);//打印
    }
  }
  return 0;
}


扩展自幂数

扩展,就是不局限于求“水仙花数”这个自幂数,可以求更多的自幂数。

例如:求出0~100000之间的所有自幂数并输出。

思路

基本的思路和水仙花数是差别不大的,但是其中多一点东西,那么多一些什么呢?

废话少说,下面我们直接上代码:

#include <math.h>
#include<stdio.h>
int main()
{
  int i = 0;
  for (i = 0; i <= 1000000; i++)
  {
    //1. 计算出i是几位数 - n
    int n = 1;
    int tmp = i;
    while (tmp>9)
    {
      tmp /= 10;
      n++;
    }
    //计算i的十进制的每一位的n次方之和,判断是否等于i本身
    tmp = i;
    int sum = 0;
    while (tmp)
    {
      sum += (int)pow(tmp % 10, n);
      tmp /= 10;
    }
    if (sum == i)
    {
      printf("%d ", i);
    }
  }
  return 0;
}

相信大家都发现多了什么,没错,就是多了一个求这个数是个几位数,用了一个很简单的小循环,运行结果给大家贴出来了,我们下次见~ ̄︶ ̄∗)

求各位大佬点赞,评论加关注,喜欢的也可以关注此专栏,将持续更新一些经典有趣的题。😋

39accfdc44664cd1891a54c81e98cd71.png

目录
相关文章
Linux CentOS 平台安装 rar unrar 命令
Linux CentOS 平台安装 rar unrar 命令
1783 0
|
6月前
|
JSON 安全 数据可视化
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
3163 0
|
8月前
|
XML 存储 大数据
Harmony os next~HarmonyOS Ability与页面跳转开发详解
HarmonyOS采用分布式架构,其Ability体系包括Page、Service、Data和Form四大类型Ability。Page Ability支持多页面跳转与数据传递,Service Ability用于后台任务,Data Ability提供数据共享接口,Form Ability实现轻量化卡片服务。本文详细解析了各Ability的开发方法、生命周期管理、跨Ability通信及最佳实践,帮助开发者掌握HarmonyOS应用开发的核心技能。
704 0
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
2190 5
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
运维 数据安全/隐私保护
Finalshell 私钥连接服务器
Finalshell 私钥连接服务器
1267 0
inno setup打包软件学习
如何使用Inno Setup打包软件,包括打包结果的展示、示例打包脚本的提供、常见错误的解决方法,以及参考资料的链接。文中详细解释了解决“另一个程序正在使用此文件”和“桌面图标无法修改”等问题的方法,以及如何正确设置打包脚本中的文件路径和图标。
510 0
inno setup打包软件学习
|
监控 数据挖掘 数据安全/隐私保护
ERP系统中的税务管理与优化
【7月更文挑战第25天】 ERP系统中的税务管理与优化
994 2
|
算法 C语言
(“拨”取数字的典例:N位水仙花数判断及水仙花数变种)
这篇内容介绍了如何判断和生成水仙花数,水仙花数是一个n位数,其各位数字的n次方之和等于该数本身。文章首先回顾了"拨数"的概念,然后通过实例展示了如何判断三位水仙花数,并将其推广到任意位数的水仙花数。作者提供了详细的解题思路和代码示例,强调了解决这类问题时要慢下来,分步骤分析问题。最后,文章还探讨了一个水仙花数的变种问题,即数字拆分后乘积之和等于原数的情况。
1137 0
|
SQL Oracle 关系型数据库
|
IDE 开发工具
使用STM32F103标准库实现自定义键盘
通过本文,我们学习了如何使用STM32F103标准库实现一个简单的自定义键盘。我们首先初始化了GPIO引脚,然后实现了一个扫描函数来检测按键状态。这个项目不仅能够帮助我们理解STM32的GPIO配置和按键扫描原理,还可以作为进一步学习中断处理和低功耗设计的基础。希望本文对你有所帮助,祝你在嵌入式开发的道路上不断进步!
1090 4
下一篇
oss云网关配置