zoukankan      html  css  js  c++  java
  • 第五次作业

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

    #include <stdio.h>
    int main()
    {
     int m,n,i,x,p;
     double y=0;
     printf("请输入两个整数m,n,且m<=n ");
     scanf("%d %d",&m,&n);
     if(m>0&&n>0)
     {
     if (m>n)
     {
      p=m;
      m=n;
      n=p;
     }
        while (m<=n)
        {
         x=1;
         for (i=1;i<=m;i++)
         {
          x=x*i;
         }
         m++;
         y+=x;
        }
     printf("%f",y);
        }
        else
        {
         printf("数据错误");
     }
     return 0;
    }

     

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

    #include <stdio.h>
    int main()
    {
        int i,j,sum;
        for (i=1;i<=1000;i++)
        {
            sum=0;
        for (j=1;j<i;j++)    
        {
            if(i%j==0)
            {
            sum+=j;
            }
        }
            if(sum==i)
            {
            printf("%4d
    ",i);
            }
        }
        return 0;
    }

    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多少步能归一 

    #include <stdio.h>
    int main()
    {
     int n,i=0;
     printf("请输入一个正整数 ");
     scanf("%d",&n);
     if(n<=0)
     {
     printf("数据错误");
        }
     while(n!=1)
     {
      i++;
      if(n%2==0)
      {
      n=n/2;
      printf("%d=%d/2 ",n,n);
      }
      else
      {
      n=3*n+1;
      printf("%d=3*%d+1 ",n,n);
      }
     }
     printf("这个n需要%d步能归一",i);
     return 0;
    }

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

    #include <stdio.h>
    int main()
    {
        int n,i,j=1,k=2,f;
        float sum=0;
        printf("请输入正整数
    ");
        scanf("%d",&n);
        i=2;
        while (i<=n)
        {
            f=j;
            j=k;
            k=f+k;
            sum=sum+(float)k/j;
            i++;
        }
        sum=sum+2;
        printf("%.2f",sum);
        return 0;
    }

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

    #include <stdio.h>
    int main()
    {
     char x;
     printf("请输入一串字符串");
     scanf("%c",&x);
     if(x>='a'&&x<='z'||x>='A'&&x<='Z')
     {
      while (x!=' ')
         {
          if(x>='a'&&x<='w'||x>='A'&&x<='W')
          {
       x=x+3;
          }
         else
      {
       x=x-23;
      }
      printf("%c",x);
      scanf("%c",&x);
         }
     }
     else
     {
      printf("数据错误");
     }
     return 0;
     
    }

    实验总结:1 注意给变量赋初值的位置!

                  2 格式要整齐,大括号对齐写!

                  3 使用while时注意如何套循环!

                  4 可以用float强制转换!

                  5 附加题2要分别输出!

                  6 可以借助程序框图做题!            

  • 相关阅读:
    jQuery下拉框级联实现
    js获取当前月的天数
    jQuery获取select选中值的文本
    JSTL常用代码总结
    matplotlib.basemap安装失败的解决
    获取MODIS MCD19A2气溶胶数据(AOD)并用GDAL转换投影坐标
    keras 显示错误 无法保存model图片_ImportError: Failed to import pydot.
    ArcGIS处理每个栅格图行列号一致且上下对齐
    北京DEM数据下载
    最新 夜光遥感影像VIIRS&DMSP下载总结
  • 原文地址:https://www.cnblogs.com/5267wss/p/6018997.html
Copyright © 2011-2022 走看看