• 清览题库--C语言程序设计第五版编程题解析(3)


    前言

    🍀作者简介:在校学生,为全栈方向努力拼搏的一名小学生。

    🍁个人主页:吉师职业混子博客

    🫒题目来源:C程序设计(第五版)

    🍂相应专栏:清览题库--C语言程序设计第五版编程题解析

    因为python和C同时学,现在混得差不多了(悲


    题目一:求最大公约数和最小公倍数

    求两数的最大公约数和最小公倍数

    输入两个正整数m和n,求其最大公约数和最小公倍数

    输入示例:

    3 6

    输出示例:

    最大公约数:3 最小公倍数:6

     思路:

    首先要明确我们需要的数字是什么,就是二者共有的因数。

    既然要求最大公约数,自然要用到循环

    因为在本题中我们要通过循环来不断试错,最终找寻到最大公约数,也就是除数,所以设该除数的变量名为c,那么这个c就一定要不为0,因此for循环中第一个表达式就应该是

    for (c=1;;)

    针对于for循环中第二个表达式,我个人不喜欢在for中的表达式规定,所以在for循环的内部语句中再细说。

    关于第三个表达式,我们要求的是最大的公约数,所以与其从0开始向上不断叠加相乘,不如把该除数的初始值设为一个极大的数字,从而由上至下向下减,虽然这样设置会大大增加对内存的占用(相对来说),但这只是一个简单的小作业,只要老师不故意找茬,就无伤大雅。

    所以经过一系列思路分析,最终的for语句应该是

    for (c=1000000000000;;c--)

    那么接下来,针对for循环的内部语句进行分析

    我第一次去思考这里的代码时,想的是只有当除到最后的两个数互质才可以结束循环,结果就是我花费了一点时间去思考如何判断两个数互质,实际上压根一点用没有。这对于初学者来说应该是个坑吧(悲)

    完整代码

    1. #include
    2. int main()
    3. {
    4. int i,s,m,n;
    5. scanf("%d %d",&i,&s);
    6. m=10;
    7. for (;;m--)
    8. {
    9. if (i%m==0&&s%m==0){
    10. n = i/m*s;
    11. break;
    12. }
    13. }
    14. printf("最大公约数:%d\n",m);
    15. printf("最小公倍数:%d\n",n);
    16. return 0;
    17. }

    题目二

    输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数字本身。例如,153是一个水仙花数,因为

    输入示例:

    输出示例:

    153 370 371 407

     思路解析

    没啥好解析的,注意范围是三位数,分别用除数和余数来分离出三个位数上的数字、幂的形式和引用的文件就可以了。

    这是源代码

    1. #include
    2. #include
    3. int main()
    4. {
    5. int a,b,s,g;
    6. for (a = 100;a >= 100;a++)
    7. {
    8. s = a%100/10;
    9. b = a/100;
    10. g = a%100%10;
    11. if (pow(s,3)+pow(b,3)+pow(g,3) == a)
    12. {
    13. printf("%d\n",a);
    14. }
    15. else if (a==999)
    16. break;
    17. else
    18. continue;
    19. }
    20. return 0;
    21. }

     烦了,毁灭吧

  • 相关阅读:
    【实战】使用 Web Animations API 实现一个精确计时的时钟
    安卓连接mysql数据库,使用okhttp
    理解 ROC 和 PRC
    深入浅出大数据:88页Hadoop实战手册,重视实操易于理解
    了解 Oracle 中的主键和外键
    基于kubernetes CI/CD实践
    Mybatis-Plus 自定义SQL注入器,实现真正的批量插入![MyBatis-Plus系列]
    100 个 Kotlin 面试问题及答案(其一)
    【Servlet】Servlet API 详解
    12、分页插件
  • 原文地址:https://blog.csdn.net/m0_55400802/article/details/126933283