第八次实验任务

来源:互联网 发布:网络行业协会 编辑:程序博客网 时间:2024/05/09 14:44

上机题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");            elseprintf("no\n");   }    


运行截图: