• 第10周编程总结


    10周编程总结

    题目1:10-1 求奇数和 (15 分)

    本题要求计算给定的一系列正整数中奇数的和。

    1).实验代码

    #include<stdio.h>

    int main()

    {

           int n,sum = 0;

           while(1){

             scanf("%d",&n);

                  if(n<=0){

                         break;

                  }

                  if(n%2!=0){

                         sum += n;

                  }

           }

           printf("%d ",sum);

           return 0;

    }

    2).设计思路

    第一步 整形定义n,sum,并赋值sum为0

    第二步 使用while循环语句【while(1)不断进行循环】,不断输入整数n

    第三步 判断是否为奇数,将负数转为整数,进行累加;

    第四步 输出结果

    3)本题调试中遇到的问题及解决方案

    不知道如何进行循环,不知道while(1)的意思和用法

    4).运行结果截图

    题目2:10-2 韩信点兵 (10 分)

    在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:

    • 按从1至5报数,记下最末一个士兵报的数为1;
    • 再按从1至6报数,记下最末一个士兵报的数为5;
    • 再按从1至7报数,记下最末一个士兵报的数为4;
    • 最后按从1至11报数,最末一个士兵报的数为10;

    请编写程序计算韩信至少有多少兵。

     

    1).实验代码

    #include<stdio.h>

    int main()

    {

      int i;

      for(i=1;;i++){

        if((i%5==1)&&(i%6==5)&&(i%7==4)&&(i%11==10)){

          printf("%d ",i);

          return 0;

        }

      }

    }

    2).设计思路

    第一步 使用循环语句来进行判断和计算

    第二步 输出兵的数量

    3)本题调试中遇到的问题及解决方案

    刚刚拿到题目完全不懂题意,更别说思路了,还是心急吃不了热豆腐

    4).运行结果截图

    题目3:10-3 求整数的位数及各位数字之和 (15 分)

    对于给定的正整数N,求它的位数及其各位数字之和。

    1).实验代码

    #include<stdio.h>

    int main()

    {

           int integer,sum,count;

           scanf("%d",&integer);

           sum = 0;

           count = 0;

           if(integer<=0){

                  integer = -integer;

           }

           while(integer>0){

                  sum+=integer%10;

                  integer = integer/10;

                  count++;

           }

           printf("%d %d",count,sum);

           return 0;

    }

    2).设计思路

    第一步 将整数不断除以10,将余数不断累加得到各位数字之和

    第二步 输出数据,得到结果

    3)本题调试中遇到的问题及解决方案

    本题没有遇到困惑

    4).运行结果截图

    题目4:10-4 整除光棍 (20 分)

    这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。

    提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 —— 比如,程序输入31,那么就输出3584229390681和15,因为31乘以3584229390681的结果是111111111111111,一共15个1。

     

    1).实验代码

    #include<stdio.h>

    int main()

    {

           int n,i,x=0,flag=0;

           scanf("%d",&n);

           for(i=1;;i++)

           {

                  x=x*10+1;

                  if(x>=n)

                  {

                         flag=1;

                         printf("%d",x/n);

                  }

                  else if(flag==1)

                    printf("0");

                      x=x%n;

                  if(x==0) 

                     break;

           }

           printf(" %d",i);

           return 0;

    }

    2).设计思路

    第一步 使用for语句进行循环,写出光棍数字的表达式

    第二步 分条件来进行判断和输出

    第三步

    3)本题调试中遇到的问题及解决方案

    4).运行结果截图

     

  • 相关阅读:
    StarUML3.x的破解方法
    图解git基本使用
    Elasticsearch分页查询From&Size vs scroll vs search_after
    MySQL索引及使用详解
    mysql中key 、primary key 、unique key 与index区别
    MySQL避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)
    git config配置快捷命令
    linux基础命令使用详解
    MySQL索引详解——full-text,b-tree,hash,r-tree
    Insert Interval 面试题leetcode.
  • 原文地址:https://www.cnblogs.com/chenguohhw/p/9952152.html
Copyright © 2020-2023  润新知