第八次上机作业
2013-05-24 18:16
197 查看
上机题1:任意输入两个大于10的整数,将两数分别反转(逆序)后两相乘,如果最后一位是0去掉0,再反转后输出;
我的程序:
运行截图
-----------------------分割线-----------------------
上机题2:假设一个数列K表的前两项是0,1,而之后的每一项为KN=
2 * KN-1+3 KN-2,输入一个正整数N,计算和输出该数列的第Ñ项
要求:利用递归函数
我的程序:
运行截图
-----------------------分割线-----------------------
上机题3:编写程序,输入一个正整数n,如果n+1是质数则输出Yes,否则输出No。另,由于最小的质数是2,所以先检查它是否小于2,如果是的话,则提示“质数是不能小于2,请重新输入”
要求:利用自定义函数z(n)检查是不是质数
我的程序:
运行截图
我的程序:
#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"); else printf("no\n"); }
运行截图