C语言水仙花数,阿姆斯特朗数

阿姆斯特朗数 也就是俗称的 水仙花数 ,是指一个三位数,其各位数字的立方和等于该数本身。例如:153=13+53+33,所以 153 就是一个水仙花数。求出所有的水仙花数。 对于阿姆斯特朗数问题,根据水仙花数的定义,需要分离出个位数、十位数和百位数。然后按其性质进行计算并判断,满足条件则打印输出,否则不打印输出。
因此,阿姆斯特朗数问题可以利用循环语句解决。设循环变量为 i,初值为 100,i 从 100 变化到 1000;依次判断条件是否成立,如果成立则输出,否则不输出。
算法思想具体如下:
① 分离出个位数,算术表达式为:j=i%10。
② 分离出十位数,算术表达式为:k=i/10%10。
③ 分离出百位数,算术表达式为:n=i/100。
④ 判断条件是否成立。若是,执行步骤 ⑤;若不是,执行步骤 ⑥。
⑤ 打印输出结果。
⑥ i 自增 1。
⑦ 转到 ① 执行,直到 i 等于 1000。
其判断的条件为:j*j*j+k*k*k+n*n*n==i。 #include <stdio.h> int main() int i,j,k,n; for(i=100;i<1000;i++) j=i%10; k=i/10%10; n=i/100; if(j*j*j+k*k*k+n*n*n==i) printf("%5d\n",i); return 0; 调试运行结果 所有的阿姆斯特朗数,如下所示:
实训中需注意的是在分离个位数、十位数和百位数时,算术运算符的选择。要清楚每一种算术运算符的运算规则和结合性,再根据题意选择合适的算术运算符进行运算。在本实例中使用了除法运算符“/”和求余运算符(模运算符)“%”。
在程序中由于循环体的语句不止一句,因此我们在使用时必须用“{}”括起来,组成复合语句进行使用。在程序中应把复合语句看成是单条语句而不是多条语句,复合语句内的各条语句都必须以分号“;”结尾;此外,在括号“}”外不能加分号。一般复合语句用于要执行某段特殊功能的程序如 for 语句、if 语句或 while 语句等。

关注公众号「 站长严长生 」,在手机上阅读所有教程,随时随地都能学习。本公众号由 C语言中文网站长 亲自运营,长期更新,坚持原创。

微信扫码关注公众号
  • 一套完整的嵌入式开发学习路线(高薪就业版)
  • 一套课程卖1万,TMD太贵了!
  • 跑了3000公里,见了一位大佬
  • CDN加速是什么?它是如何工作的?
  • Java可以做什么?9种Java实际用途汇总
  • 程序员跳槽的最佳时机是什么?
  • IP地址和Mac地址的区别
  • 大厂卡学历吗?普通大学能进吗?
  • 没有项目经验,能找到工作吗?能进大厂吗?
  • C语言有哪些冷知识?
  •