shell求水仙花数

水仙花数(100-999).水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身

c++代码

int i=100;
while(i<=999){
    int sum=0;
    int temp=i;
    int k=0;
    while(temp!=0){
        k=temp%10;
        sum=sum+k*k*k;
        temp=temp/10;
    }
    if(sum==i){
        cout<<sum<<" ";
    }
    i++;
}

shell 代码

# @author sugar
# time  2020年 01月 01日 星期三 22:33:59 CST
# 水仙花数

i=100
# 外层循环遍历每个数字(100 - 999)
while [ $i -le 999 ]
do
    declare -i sum=0    #存放3个位数和的临时值
    declare -i temp=$i  #当前待判断的值
    declare -i k=0      #临时存放每个位数的值
    while [ temp -ne 0 ]
    do
        k=$(($temp % 10))
        temp=$(($temp/10))
        sum=$(($sum+$k*$k*$k))
    done
    # 如果相等即为水仙花数
    if [ $sum -eq $i ]
    then
        echo  -e "$sum \c"
    fi
    # i++
    i=$(($i + 1))
done

原文地址:https://www.cnblogs.com/roseAT/p/12130810.html

时间: 2024-09-30 16:08:31

shell求水仙花数的相关文章

求水仙花数

/** * 求水仙花数 * @param left * @param right */ static void checkFlowerNumber(int left,int right){ for (int i = left; i <= right; i++) { char[] ch = (i+"").toCharArray(); int sum = 0; int num = 0; for (int j = 0; j < ch.length; j++) { num = In

C语言——求水仙花数

昨天,雷老师偶有闲致,评讲了n周前的C程序设计作业.其中讲到了一到求水仙花数的题,给出了一种漂亮的算法,在此记录下来. 原题 输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身. 解题 思路 初始化i=100. ①取i的各位数,百位a,十位b,个位c. ②判断i==a∧3+b∧3+c∧3 是否成立 ③如果成立则输出,否则不输出. ④i=i+1,当i小于1000重复①,否则结束. 关键算法:取任意三位数的各位数 算法一:除减法 ①将数除以100,由整型数据特点,小数点后被

整数倒置和求水仙花数

#include<stdio.h> #include<stdlib.h> void numReverse(int num); void numReverseWithoutArr(int num); void main(){ numReverse(123459); getchar(); } void shuiXian(){ //求水仙花数(一个三位数,其各位数字的立方和等于该数本身) int num, f, s, t; for (num = 100; num <= 999; n

C#求水仙花数!

最近在入门学习.NET编程,慢慢的学习了一些门道,同时也需要将学习的点点滴滴记录下来,今天我就自己想了想,把水仙花数的代码写出来,运行也通过了,就贴在这里,分享给大家,也给自己做一个记录. using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ConsoleApplication10{    class Pr

python基础----求水仙花数

水仙花数,即一个三位数,各个位上的数字的三次方相加,等于该数本身.如:153 = 1**3 + 5 ** 3 + 3 ** 3 1 def is_narc_num(n): 2 # if n <100 or n > 999: 3 # return False 4 # n = str(n) 5 # if int(n[0])**3 + int(n[1])**3 + int(n[2]) ** 3 == int(n): 6 # return True 7 # else: 8 # return False

Python小代码_9_求水仙花数

for i in range(100, 1000): ge = i % 10 shi = i // 10 % 10 bai = i // 100 if ge ** 3 + shi ** 3 + bai ** 3 == i: print(i, end=' ') #输出结果 #153 370 371 407 原文地址:https://www.cnblogs.com/chuangming/p/8467677.html

输入任意数位求水仙花数

dn57mec2op操尾撇友源徒啪泛撬荚<http://weibo.com/p/230927988313307813253120> n4hvgeknea扒遮豆坟谡嘏终馁值滥<http://weibo.com/p/230927988313218315194368> jii9fcbl08瘸迸桨文蹈诖谱判缮盖<http://weibo.com/p/230927988313330550575104> mxhenjgzwi易臣汾即缕晒迪祷嘉张<http://weibo.co

求100到999之间的水仙花数

所谓"水仙花数" ,是指一个 3 位数,其各位 数字立方和等于该数本身 所谓"水仙花数" ,是指一个 3 位数,其各位 数字立方和等于该数本身 for(int a=1;a<=9;a++){ for(int b=0;b<=9;b++){ for(int c=0;c<=9;c++){ if(a*a*a+b*b*b+c*c*c==a*100+b*10+c){ System.out.println(a*100+b*10+c); } } } } 所谓&quo

C的一些简单练习题,关于水仙花数,求和,整数高低位输出,制定二进制位替换

#define _CRT_SECURE_NO_WARNINGS //输出一个整数的每一位 //1.低位输出到高位 #include <stdio.h> #include <stdlib.h> int main() { int a; printf("请输出一个数"); scanf("%d",&a); while(a) { printf("%d ",a % 10); a = a / 10; } system("