第八次上机作业

来源:互联网 发布:云计算和saas 编辑:程序博客网 时间:2024/05/21 10:36

上机题1:任意输入两个大于10的整数,将两数分别反转(逆序)后两相乘,如果最后一位是0去掉0,再反转后输出;

我的程序:

#include <stdio.h>   int fun(int x)   {       int i,j=0;        while(x>0)      {          i=x%10;            x=x/10;            j=j*10+i;      }            return j;  }    void main()  {      int a,b,m;      printf("请输入两个大于10的整数: ");      scanf("%d %d", &a,&b);      m=fun(a)*fun(b);       m=fun(m);      printf("结果为:%d",m);    }  


运行截图

-----------------------分割线-----------------------
上机题2:假设一个数列K表的前两项是0,1,而之后的每一项为KN= 2 * KN-1+3 KN-2,输入一个正整数N,计算和输出该数列的第Ñ项
要求:利用递归函数

我的程序:

#include<stdio.h>      int fun(int x)    {       int m;        if(x==1)           m=0;        if(x==2)            m=1;        if(x>2)            m=2*fun(x-1)+3*fun(x-2);        return m;  }    int main()    {   int N,M;        printf("输入正整数N:");        scanf("%d",&N);        M=fun(N);        printf("答案为%d",M);   }  


运行截图

-----------------------分割线-----------------------
上机题3:编写程序,输入一个正整数n,如果n+1是质数则输出Yes,否则输出No。另,由于最小的质数是2,所以先检查它是否小于2,如果是的话,则提示“质数是不能小于2,请重新输入”
要求:利用自定义函数z(n)检查是不是质数

我的程序:

#include<stdio.h>           void main()      {          int i,n,m,a=1;      while (a)      {          printf("请输入一个正整数:\n");              scanf("%d",&n);              n=n+1;          if (n<2)              printf("质数是不能小于2,请重新输入\n");            else              break;      }      for(i=2;i<n;i++)          {           m=n%i;              if(m==0)              break;          }              if(i==n)              printf("yes\n");              else              printf("no\n");           }      #include<stdio.h>        void main()    {        int i,n,m,a=1;    while (a){printf("请输入一个正整数:\n");            scanf("%d",&n);            n=n+1;    if (n<2)            printf("质数是不能小于2,请重新输入\n");          else    break;}for(i=2;i<n;i++)    { m=n%i;            if(m==0)break;    }            if(i==n)printf("yes\n");            elseprintf("no\n");   }    


运行截图

原创粉丝点击