• 第5次作业


    1.输入两个正整数m和n(要求m<=n), 求m!+(m+1)!+(m+2)!…+n!

     1 #include<stdio.h>
     2 int main()
     3 {
     4   
     5     int m,n,i,j;
     6     float s=1,sum=0;
     7     printf("请输入m,n的值:");
     8     scanf("%d,%d",&m,&n);
     9     if(m>n)
    10     {
    11         printf("粗错啦!");
    12     }
    13     else if(m<=n)
    14     {
    15     for(i=m;i<=n;i++)
    16     { 
    17         s=1;
    18         for(j=1;j<=i;j++)
    19             {
    20                 s=s*j;
    21             }
    22             sum=sum+s;
    23         }
    24     printf("从m到n的阶乘的和为%.f",sum);
    25     } 
    26     
    27     return 0;
    28 } 

    2.输出1000以内的所有完数。所谓完数是指这个数恰好等于除他本身外的所有因子之和。例,6的因子为1,2,3,6=1+2+3,所以6是完数。 

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int sum=0,i,j;
     5     printf("输出1000内所有完数");
     6     for(i=1;i<=1000;i++)
     7     {
     8         sum=0; 
     9         for(j=1;j<i;j++)
    10         {
    11             if(i%j==0)
    12             {
    13                 sum=sum+j;    
    14             }    
    15         }
    16         if(i==sum)
    17         {
    18             printf("
    %d",i);    
    19         }
    20             
    21     } 
    22     return 0;
    23 }
    24  

    3.奇偶归一猜想——对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2,如此循环,最终都能够得到1。   如n = 11,得序列:11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1。(共有14个步骤)  题目输入正整数n,求这个n多少步能归一 

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int x,a=0,b=0,sum=0;
     5     printf("请输入一位正整数:
    ",a);
     6     scanf("%d",&x);
     7     do
     8     {
     9         if(x>0&&x!=1)
    10         {
    11             if(x%2==0)
    12             {
    13                 x=x/2;
    14                 a++;
    15             }
    16             else if(x%2!=0)
    17             {
    18                 x=3*x+1;
    19                 b++; 
    20             }
    21         }
    22     }while(x!=1);
    23     sum=a+b;
    24     printf("数字x一共经过了%d次运算",sum);
    25     return 0;
    26 }
    27     

     附加题: 

      1.输入一个正整数n,输出2/1+3/2+5/3+8/5+…的前n项之和,保留2位小数,该序列从第二项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。 

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int n,i;
     5     float sum,a,b,c;
     6     printf("输入一个整数n:
    ",n);
     7     scanf("%d",&n);
     8     if(n<=0)
     9     {
    10         printf("error");
    11     }
    12     a=2;
    13     b=1;
    14     sum=0;
    15     for(i=1;i<=n;i++)
    16     {
    17         sum=sum+a/b;
    18         c=a+b;
    19         b=a;
    20         a=c;
    21     }
    22     printf("%.2f",sum);
    23     return 0;
    24 }

    2.凯撒密码(caeser)的原理:每一个字母按字母表顺序向后移3位,如a加密后变成d,b加密后变成e,……x加密后变成a,y加密后变成b,z加密后变成c。例如:“baidu”用凯撒密码法加密后字符串变为“edlgx”。试写一个算法,将键盘输入的文本字符串(只包含a~z的字符)进行加密后输出。 

     1 #include<stdio.h>
     2 int main()
     3 {
     4     char x;
     5     printf("请输入一个字母");
     6     scanf("%c",&x);
     7     while(x!='
    ')
     8     {
     9     if('x'>='a'&&x<='w')
    10     {
    11         x=x+3;    
    12     } 
    13     else if(x=='x'||x=='y'||x=='z')
    14     {
    15         x=x-23;
    16     }
    17     else if(x>='A'&&x<='W')
    18     {
    19         x=x+3;
    20     }
    21     else if(x=='X'||x=='Y'||x=='Z')
    22     {
    23         x=x-23;
    24     }
    25     if(x=='
    ')
    26     {
    27         break;
    28     }
    29     printf("%c
    ",x);
    30     scanf("%c",&x);    
    31 }
    32     return 0;
    33 }

     二、实验总结(实验中遇到的问题及解决方法) 

    1:第一题就想课堂讲的一样里面的循环累乘,外面累加,这样就可以完成从一个数到另一个数的阶乘的和。注意里循环从1开始,外循环从输入较小的书开始。

    2:再给累加的符号求和时要记住赋值,而且要在循环的里面。

    3:先注意前提条件正整数,所以输出判断数字大于0,并且最后求出两个分式运行次数的和。

    附加题:

    1:在进行除法运算是最新的数等于前两个数之和,但是当较小的数被复制给较大的数,较大的数就已经被赋值,所以需要第三个数进行被赋值的程序,由于保留两位小数,所以最后要加%.2f或者%.2d来完成保留两位小数。

    2:因为x,y,z三个数不像其他的字母加三,所以需要特殊处理减去23,并且程序运算的前提条件是字母,所以需要给出限制条件,当在是字母的情况下才能输出。

  • 相关阅读:
    Hutool 工具类
    Springboot 不存在javax.validation包 _
    Flask 学习16.项目设计与蓝图的使用 上海
    Flask 学习12.FlaskSQLAlchemy 连接 mysql 数据库 上海
    Flask 学习15.flaskmigrate数据迁移 上海
    SQLAlchemy学习11.结合 dataclass 使用 上海
    Flask 学习13.FlaskSQLAlchemy 新建模型和字段 上海
    Flask 学习14.FlaskSQLAlchemy ORM操作数据库增删改查 上海
    Flask 学习17.项目配置管理config 上海
    Flask 学习11.redirect() 重定向 上海
  • 原文地址:https://www.cnblogs.com/yeqingsong/p/6021323.html
Copyright © 2020-2023  润新知