• 第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,并且程序运算的前提条件是字母,所以需要给出限制条件,当在是字母的情况下才能输出。

  • 相关阅读:
    《将博客搬至CSDN》
    日志分析利器Splunk的搭建、使用、破解
    htop的安装和使用!
    centos下升级php5.3到php5.6
    TriAquae3.0部署安装
    Linux编译安装python2.7.5的步骤
    Centos 7.0 下安装 Zabbix server 3.0服务器的安装及 监控主机的加入(1)
    日志分析利器Splunk的搭建、使用、破解
    AIX上如何启动和停止系统服务
    Splunk日志服务器安装
  • 原文地址:https://www.cnblogs.com/yeqingsong/p/6021323.html
Copyright © 2020-2023  润新知