习题5-6 使用函数输出水仙花数(20 分)

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

函数接口定义:

int narcissistic( int number );
void PrintN( int m, int n );

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

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

裁判测试程序样例:

#include <stdio.h>

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;
}

/* 你的代码将被嵌在这里 */

输入样例:

153 400

输出样例:

153 is a narcissistic number
370
371
#include <stdio.h>

int narcissistic( int number )
{
    int a,b,c;
    a=number%10;
    b=number%100/10;
    c=number/100;
    if(number==a*a*a+b*b*b+c*c*c)
    {
        return 1;
    }
    else
    return 0;
}
void PrintN( int m, int n )
{
    for(int i=m+1;i<n;i++)
    {
        if(narcissistic(i)==1)
        {
            printf("%d\n",i);
        }
    }
}

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;
}

原文地址:https://www.cnblogs.com/2228212230qq/p/9255926.html

时间: 2024-10-23 03:41:34

习题5-6 使用函数输出水仙花数(20 分)的相关文章

在java中输出水仙花数

100~1000之间各位的立方和与这个数自己相等的数即为水仙花数 1 public static void main(String[] args) { 2 for(int i=100;i<1000;i++){ 3 int n=i; 4 int gewei=n%10; 5 n/=10; 6 int shiwei=n%10; 7 n/=10; 8 if(n*100+shiwei*10+gewei==n*n*n+shiwei*shiwei*shiwei+gewei*gewei*gewei){ 9 Sy

L1-023 输出GPLT (20 分)

L1-023 输出GPLT (20 分) 给定一个长度不超过10000的.仅由英文字母构成的字符串.请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符.当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出. 输入格式: 输入在一行中给出一个长度不超过10000的.仅由英文字母构成的非空字符串. 输出格式: 在一行中按题目要求输出排序后的字符串.题目保证输出非空. 输入样例: pcTclnG

java 输出水仙花数的代码

package com.hanqi; public class shuixianhuashu { //输出100-999之间的水仙花数 public static void main(String[] args) { for(int i=1;i<10;i++) { for(int j=0;j<10;j++) { for(int k=0;k<10;k++) { if(i*i*i+j*j*j+k*k*k==(i*100+j*10+k)) { System.out.println(i*100+

java 实现输出水仙花数

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153 是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 程序段为: public class shuixian { public static void main(String[] args) {  // TODO 自动生成的方法存根  int a,b,c,i;  for(i=100;i<1000;i++)  {   a=i/

04-1. 水仙花数(20)

水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身.例 如:153 = 13 + 53+ 33. 本题要求编写程序,计算所有N位水仙花数. 输入格式: 输入在一行中给出一个正整数N(3<=N<=7). 输出格式: 按递增顺序输出所有N位水仙花数,每个数字占一行. 输入样例: 3 输出样例: 153 370 371 407 注:这里实现了最高7阶的水仙花,用了7个变量保存每一位的n次方结果(当n<7时,后面的几个变量会和0做乘法,所以不会影响<7阶

循环-11. 水仙花数(20)

水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身.例 如:153 = 13 + 53+ 33. 本题要求编写程序,计算所有N位水仙花数. 输入格式: 输入在一行中给出一个正整数N(3<=N<=7). 输出格式: 按递增顺序输出所有N位水仙花数,每个数字占一行. 输入样例: 3 输出样例: 153 370 371 此题借用他人的算法,十分简短. #include <iostream> #include <stdio.h> #inclu

C语言输出水仙花数

#include <stdio.h> #include <stdlib.h> #include <math.h> int main() {  int a = 0;  int b = 0;  int c = 0;  int i;  for (i = 100; i < 1000; i++)  {   a = i % 10;   b = i / 100;   c = (i - b*100)/10;   if ((pow(b, 3) + pow(c, 3) + pow(a

习题5-4 使用函数求素数和 (20分)

本题要求实现一个判断素数的简单函数.以及利用该函数计算给定区间内素数和的函数. 素数就是只能被1和自身整除的正整数.注意:1不是素数,2是素数. 函数接口定义: int prime( int p ); int PrimeSum( int m, int n ); 其中函数prime当用户传入参数p为素数时返回1,否则返回0:函数PrimeSum返回区间[m, n]内所有素数的和.题目保证用户传入的参数m≤n. 裁判测试程序样例: #include <stdio.h> #include <m

习题4-4 特殊a串数列求和(20 分)

给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++?+aa?a(n个a)之和. 输入格式: 输入在一行中给出不超过9的正整数a和n. 输出格式: 在一行中按照"s = 对应的和"的格式输出. 输入样例: 2 3 输出样例: s = 246 #include <stdio.h> int main() { int i,a,n,sum=0,t=0; scanf("%d %d", &a, &n); for(i=1;i<=n