6bingame 发表于 2024-11-27 16:08:47

每日一学4

本帖最后由 6bingame 于 2024-11-27 16:08 编辑

简单算法
书本例题

解方程

题1:计算下面的分段函数
算法描述
(1)输入x的值
(2)判断x是否大于0,若大于0,则y为2x-1,然后转步骤(5),否则进行步骤(3)
(3)判断x是否等于0,若等于0,则y为0,然后转步骤(5),否则进行步骤(4)
(4)y为3x+1(因为步骤(2)、步骤(3)条件不成立,则肯定步骤(4)条件成立)
(5)输出y的值后结束

解:
#include<stdio.h>
int main()
{
    int x,y;

    printf("请输入x的值:");      //输入提示信息

    scanf("%d",&x);         //由键盘输入x的值

    if(x>0)         //若x>0,执行下条语句

      y=2*x-1;

    else if(x==0)       //若x==0,执行下条语句

      y=0;

    else            //若x<0,执行下条语句

      y=3*x+1;

    printf("y=%d\n",y);   //输出y的值

    return 0;
}


用自然语言表示算法

题2:
用自然语言描述s=1+2+...+100的算法

第1步:算法分析
原始的数学方法如下
(1)先求1+2,得到结果3
(2)将步骤(1)得到的乘积3加上3,得到结果6
(3)重复上述过程,直到加到100,得到5050

第2步:算法描述
S1:把0放入s单元
S2:把1放入i单元
S3:将s+i赋给s
S4:i值加1
S5:判断i是否小于等于100,是,转S3,否则转S6
S6:输出s的值,结束

解:
#include<stdio.h>
int main()
{
    int sum,i;

    sum=0;      //sum初始设为0

    for(i=1;i<=100;i++)

      sum+=i;

    printf("1+2+...+100=%d\n",sum);

    return 0;
}




题3:判断2010~2050年中的哪一年是闰年,将结果输出(闰年的条件是:能被4整除,但不能被100整除;或者能被400整除的年份)

算法描述

设y为被检测的年份,用自然语言描述如下
S1:将2010放入y单元
S2:若y不能被4整除,则转到S5
S3:若y能被4整除,不能被100整除,则输出y,然后转到S5
S4:若y能被400整除,则输出y,然后转到S5
S5:将y+1赋给y
S6:当y<=2050时,转S2继续执行,如果y>2050,结束

解:
#include<stdio.h>
int main()
{
    int y;      //被检测的年份

      for(y=2000;y<=2050;y++)   //y从2000循环到2050,执行以下的语句
    {
      if(y%4==0&&y%100!=0||y%400==0)      //若y为闰年,则输出y的值

      printf("%d ",y);
    }
    printf("\n");

    return 0;
}

瓜提胖 发表于 2024-11-27 16:44:19

加油小伙子

6bingame 发表于 2024-11-27 17:16:23

瓜提胖 发表于 2024-11-27 16:44
加油小伙子

{:10_265:}谢谢加油坚持就是胜利

小甲鱼的二师兄 发表于 2024-11-28 01:18:30

这个可以哦,加油!

sunshine_8205 发表于 2024-11-28 09:41:23

{:5_108:}
页: [1]
查看完整版本: 每日一学4