上机题1:任意输入两个大于10的整数,将两数分别反转(逆序)后两相乘,如果最后一位是0去掉0,再反转后输出;
我的程序
#include<stdio.h>
int fanzhuan(int x);
void main()
{
int x,y;
printf("请输入两个大于10的整数:");
scanf("%d%d",&x,&y);
if(x%10==0)
x=x/10;
if(y%10==0)
y=y/10;
printf("%d",fanzhuan(fanzhuan(y)*fanzhuan(x)));
}
int fanzhuan(int x)
{
int y=0;
while(x!=0)
{
y=y*10+x%10;
x=x/10;
}
return y;
}
运行效果
上机题2:假设一个数列K表的前两项是0,1,而之后的每一项为KN= 2 * KN-1+3 KN-2,输入一个正整数N,计算和输出该数列的第Ñ项要求:利用递归函数
# include<stdio.h> int f(int b); void main() { int n,sum; printf("请输入要计算的序数N:\n"); scanf("%d",&n); {sum=f(n); printf("数列的第%d项的值为:%d\n",n,sum);} } int f(int b) { int a; if(b==1||b==2) a=b-1; else a=2*f(b-1)+3*f(b-2); return a; }
运行截图
上机题3:编写程序,输入一个正整数n,如果n+1是质数则输出Yes,否则输出No。另,由于最小的质数是2,所以先检查它是否小于2,如果是的话,则提示“质数是不能小于2,请重新输入”
要求:利用自定义函数z(n)检查是不是质数
我的程序:#include<stdio.h> void main() { int n,i,y,m=1; while(m) { printf("请输入一个正整数:\n"); scanf("%d",&n); n=n+1; if(n<2) printf("质数是不能小于2,请重新输入\n"); else break;} {for(i=2;i<n;i++) { y=n%i; if(y==0) break; } if(i==n) printf("yes\n"); else printf("no\n"); } }
运行截图