vs水仙花数c语言代码,C语言经典案例,三种方法求水仙花数 附完整代码

C

C语言经典案例,三种方法求水仙花数附完整代码

原题输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身。解题思路初始化

i=100。取i的各位数,百位a,十位b,个位c。判断i==a ∧3+b∧3+c∧3 是否成立如果成立则输出,否则不输出。

i=i+1,当i小于1000重复,否则结束。关键算法:取任意三位数的各位数算法一:除减法将数除以100,由整型数据特点,小数点后被忽略,取得百位a。该数减去a * 100,除以10,得到十位b。该数减去a * 100和b * 10即得个位c。代码实现a = i / 100;b = (i - 100 * a) / 10;c = i - 100 * a - 10 * b;完整代码:void NarcissusNumber(int m) { int a; //三位数的百位int b; //三位数的十位int c; //三位数的个位int d; //各位

数字立方和与数的差值 a = m / 100; b = (m - 100 * a) / 10; c = m - 100 * a - 10 * b; d = a*a*a + b*b*b + c*c*c - m; if (d==0) //各位数字立方和与数相等,输出{ printf('%d ', m); }}好处:易理解,菜鸟基本都会这算法。不足:当数字位数较大时,减法操作需要进行多次,比较代码比较冗长。算法二:除余法将数除以10取余数得个位c将数除以10后再与10

取余得到十位b将该数除以100再与10取余得到百位a代码实现int c = n % 10; //个位int b = n / 10 % 10; //十位int a = n / 100 % 10; //百位,或者写int c = n / 100;这种算法对我们菜鸟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值