在linux中如何用gcc编程实现一个100到999的水仙花数

在linux中如何用gcc编程实现一个100到999的水仙花数,第1张

#include <stdio.h>

#include <math.h>

void main() {

    int N=3 //水仙数的位数

    int i,sum=0 

    for(i=100i<1000i++){

        int m=i

        sum=0

        while(m>0)

        {

            int temp=1

            int count=N

            while(count--) temp*=(m%10)

            sum+=temp

            m/=10

        }

        if(sum==i) printf("%d\n",i)

    }

}

//编译:gcc Daffodil_number.c -o daffodil

//执行:./daffodil

bash 求1000以内水仙花

#!/bin/bash

for (( a=1a<10a++ ))

do

for (( b=0b<10b++ ))

do

for (( c=0c<10c++ ))

do

number1=$((a*100+b*10+c))

number2=$((a**3+b**3+c**3))

if [ $number1 -eq $number2 ]then

echo "Found number $number1"

fi

done

done

done

bash判断成绩,你的意思是要判断是否及格吗?下面的程序分别判断是小于60,大于60,满分(100),或者是无效输入。将下面的程序存入文件中,比如 my.sh, 然后用 my.sh 85 的方法来判断85分属于什么区间。

#!/bin/bash

case $1 in

[0-9]|[0-5][0-9]) echo "less than 60"

100) echo "full score"

[6-9][0-9]) echo "more than 60"

*) echo "Invalid score $1"

esac

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。

函数接口定义:

int narcissistic(int number)

void PrintN(int m,int n)

函数narcissistic判断number是否为水仙花数,是则返回1,否则返回0。

函数PrintN则打印开区间(m,n)内所有的水仙花数,每个数字占一行。题目保证100≤m≤n≤10000。

例:

#include&ltstdio.h&gt

int narcissistic(int number)

void PrintN(int m,int n)

int main()

{

int m,n

scanf("%d%d",&m,&n)

if(narcissistic(m))printf("%d is a narcissistic number\n",m)

PrintN(m,n)

if(narcissistic(n))printf("%d is a narcissistic number\n",n)

return 0

}

运行:

扩展资料:

方法一、

#include&ltstdio.h&gt

int narcissistic(int number)

void PrintN(int m,int n)

int main(){

int m,n

scanf("%d%d",&m,&n)

if(narcissistic(m))printf("%d is a narcissistic number\n",m)

PrintN(m,n)

if(narcissistic(n))printf("%d is a narcissistic number\n",n)

return 0

}

int narcissistic(int number){

int count,digit,item,n,sum,ret,k,i

n=number,count=0

while(n){//算出number是几位数。

n/=10

count++

}

sum=0,n=number

while(n){

digit=n%10

item=1

for(i=0i&ltcounti++)

item*=digit

sum+=item

n/=10

}

if(sum==number)ret=1

else ret=0

return ret

}

void PrintN(int m,int n){

int i

for(i=m+1i&ltni++)

if(narcissistic(i))printf("%d\n",i)

}

方法二:

int narcissistic(int number){

int count,sum,temp,ret

count=0,temp=number

while(temp){

count++

temp/=10

}

sum=0,temp=number

while(temp){

sum+=pow(temp%10,count)

temp/=10

}

if(sum==number)ret=1

else ret=0

return ret

}

void PrintN(int m,int n){

int i

for(i=m+1i&ltni++)

if(narcissistic(i))printf("%d\n",i)

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8743227.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-20
下一篇2023-04-20

发表评论

登录后才能评论

评论列表(0条)

    保存