法133计算机科学课第15周实践题目及参考解答

简介: 课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597编程练习1:输出1000以内的所有素数。参考解答:#include<stdio.h>#include<math.h>int main(){ int m,i,k,prime; for(m=2;m<=200;m++

课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597

编程练习1:输出1000以内的所有素数。

参考解答:

#include<stdio.h>
#include<math.h>
int main()
{
    int m,i,k,prime;
    for(m=2;m<=200;m++)
{
    prime=1;
    k=sqrt(m);
    for(i=2; i<=k; i++) //最多循环至……
        if(m%i==0)
        {
            prime=0;
            break;
        }
    if(prime==1)
        printf("%d ",m);
}
    return 0;
}

编程练习2:求满足条件n=a!+b!+c!的所有三位数n并输出,其中a,b,c分别为n的百、十、个位数。

参考解答:

#include<stdio.h>
int main()
{
    int n,a,b,c,sum;
    int i,f;
    n=100;
    while(n<1000)
    {
        sum=0;
        c=n%10;  //个位数,
        b=(n/10)%10;  //十位数
        a=n/100;  //百位数
        for(f=1,i=1; i<=a; ++i)  f=f*i; //求 a!
        sum += f;
        for(f=1,i=1; i<=b; ++i)  f=f*i; //求 b!
        sum += f;
        for(f=1,i=1; i<=c; ++i)  f=f*i; //求 c!
        sum += f; //此时sum的值为a!+b!+c!
        if(sum==n)  //若条件成立,则 n 就是要找的数。
            printf("%d ",n);
        ++n;  //考察下一个n
    }
    return 0;
}

解2:

#include<stdio.h>
int main()
{
    int n,a,b,c,sum;
    int i,f;
    for(n=100;n<1000;n++)
    {
        sum=0;
        c=n%10;  //个位数,
        b=(n/10)%10;  //十位数
        a=n/100;  //百位数
        for(f=1,i=1; i<=a; ++i)  f=f*i; //求 a!
        sum += f;
        for(f=1,i=1; i<=b; ++i)  f=f*i; //求 b!
        sum += f;
        for(f=1,i=1; i<=c; ++i)  f=f*i; //求 c!
        sum += f; //此时sum的值为a!+b!+c!
        if(sum==n)  //若条件成立,则 n 就是要找的数。
            printf("%d ",n);
    }
    return 0;
}

编程练习3:输入一个正整数,判断其是否为一个回文数(例1221、12321都是回文数)。提示:输入一个正整数n(例1234)后,构造出其反序数m(对应4321),若这两个数相等,则n是回文数(1234就不是回文数)。算法流程图如右图所示。

参考解答:

#include<stdio.h>
int main()
{
 
    int m,n,k;
    scanf("%d",&n);
    k=n;
    m=0;
    while(k>0)
    {
        m=m*10+k%10;
        k=k/10;
    }
    if(m==n)
        printf("%d是回文数\n",n);
    else
        printf("%d不是回文数\n",n);
    return 0;
}

编程练习4:输出1000以内的所有回文数。

参考解答:

#include<stdio.h>
int main()
{
 
    int m,n,k;
    for(n=0; n<1000; n++)
    {
        k=n;
        m=0;
        while(k>0)
        {
            m=m*10+k%10;
            k=k/10;
        }
        if(m==n)
            printf("%d ",n);
    }
    return 0;
}

编程练习5:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3,1、2、3是6的因子,所以6是完数。编程序,输入n,判断n是否是完数。

参考解答:

#include<stdio.h>
int main( )
{
    int i,n,s;
    scanf("%d",&n);
    s=1; //s表示因子和。1是任何数的因子,所以s=1,也使下一句可以从2开始尝试
    for(i=2; i<n; i++) //从2开始到n-1,逐个去试
    {
        if(n%i==0)
            s+=i;  //如果i是n的因子,则累加
    }
    if(n==s)
        printf("%d是完数\n",n);
    else
        printf("%d不是完数\n",n);
    return 0;
}

编程练习6:找出1000内的所有完数。

参考解答:

#include<stdio.h>
int main( )
{
    int i,n,s;
    for(n=2; n<1000; n++)
    {
        s=1; //s表示因子和。1是任何数的因子,所以s=1,也使下一句可以从2开始尝试
        for(i=2; i<n; i++) //从2开始到n-1,逐个去试
        {
            if(n%i==0)
                s+=i;  //如果i是n的因子,则累加
        }
        if(n==s)
            printf("%d ",n);
    }
    return 0;
}




目录
相关文章
|
算法
研究生考试.数据结构与算法之十一 图
研究生考试.数据结构与算法之十一 图
51 0
|
存储 前端开发 数据库
【软件设计师-从小白到大牛】下午题基础篇:第一章 数据流图(DFD)
顶层图上的数据流:是系统和外部实体之间的联系。而内部数据流在0层图中能体现,因为系统被细分了。 对于数据流图任意一个加工:都应该有输入和输出,箭头有进也有出;黑洞:只有输入,没有输出;奇迹(白洞):只有输出,没有输入。这两种都不符合客观事实。
199 0
|
存储 SQL 安全
数据库原理第一章课后题答案(第四版)
数据库原理第一章课后题答案(第四版)
76 0
|
数据可视化 程序员 索引
软考初级程序员—计算机基础试题与解析(待补充)
软考初级程序员—计算机基础试题与解析(待补充)
168 0
《Java程序设计习题精析与实验指导》一2.4 练习题
本节书摘来自华章出版社《Java程序设计习题精析与实验指导》一 书中的第2章,第2.4节,作者:施霞萍 王瑾德 史建成 马可幸,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1425 0
|
存储 Java
《Java程序设计习题精析与实验指导》一2.2 习题解析
本节书摘来自华章出版社《Java程序设计习题精析与实验指导》一 书中的第2章,第2.2节,作者:施霞萍 王瑾德 史建成 马可幸,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1572 0
《Java程序设计习题精析与实验指导》一1.2 习题解析
本节书摘来自华章出版社《Java程序设计习题精析与实验指导》一 书中的第1章,第1.2节,作者:施霞萍 王瑾德 史建成 马可幸,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1748 0
《Java程序设计习题精析与实验指导》一3.2 习题解析
本节书摘来自华章出版社《Java程序设计习题精析与实验指导》一 书中的第3章,第3.2节,作者:施霞萍 王瑾德 史建成 马可幸,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1893 0
《Java程序设计习题精析与实验指导》一第2章 Java程序设计的基本概念 - 2.1 重点复习
本节书摘来自华章出版社《Java程序设计习题精析与实验指导》一 书中的第2章,第2.1节,作者:施霞萍 王瑾德 史建成 马可幸,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1157 0
|
Java
《Java程序设计习题精析与实验指导》一导读
本书是为《Java程序设计教程(第3版)》一书配置的教学辅导教材,书中为主教材的教学提供了完整的学习辅导材料。全书共有11章,前十章与主教材的章节对应,是对教材知识的学习指导,每章包括重点复习、习题解析、实验指导和练习题四部分。
3910 0
下一篇
无影云桌面