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 可以借助程序框图做题!            

  • 相关阅读:
    Compression algorithm (deflate)
    tcpip数据包编码解析(chunk and gzip)_space of Jialy_百度空间
    What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?
    gzip压缩算法: gzip 所使用压缩算法的基本原理
    Decompressing a GZip Stream with Zlib
    Frequently Asked Questions about zlib
    how to decompress gzip stream with zlib
    自己动手写web服务器四(web服务器是如何通过压缩数据,web服务器的gzip模块的实现)
    What's the difference between the "gzip" and "deflate" HTTP 1.1 encodings?
    C语言抓http gzip包并解压 失败 C/C++ ChinaUnix.net
  • 原文地址:https://www.cnblogs.com/5267wss/p/6018997.html
Copyright © 2011-2022 走看看