第1题:
编写两个函数,函数功能分别是:求两个整数的最大公约数和最小公倍数,要求输入输出均在主函数中完成。 样例输入:15 25 样例输出:5 75
程序如下
#include
int m,n;
int gys(int,int); //声明函数 int gbs(int,int); //声明函数 cin>>m>>n;
cout< int gys(int a,int b) { int r; r=a%b; while(r!=0) { a=b;b=r;r=a%b; } return b; } int gbs(int a,int b) { int gys(int,int); //声明函数 return (a*b)/gys(a,b); } 第2题: 编写函数digit(num, k),函数功能是:求整数num从右边开始的第k位数字的值,如果num位数不足k位则返回0。要求输入输出均在主函数中完成。 样例输入:4647 3 样例输出:6 样例输入:23523 7 样例输出:0 程序如下:方法一: #include int num,k; int digit(int,int); //声明函数 cin>>num>>k; cout< int digit(int num,int k) { int i,f; i=1; f=0;//f=0,num不足k位,否则f=1 while(num!=0) { if(i==k) { f=1; break; } else { num=num/10; i++; } } if(f==1) return num; else return 0; } 程序如下:方法二: #include int num,k; int digit(int,int); //声明函数 cin>>num>>k; cout< int digit(int num,int k) { int i,n,a[100]; /*将num中的各位数字从个位开始依次取出置于数组元素a[0]至a[i-1]中 循环结束后,i变量中存储了num的数据位数*/ i=0; while(num!=0) { a[i]=num; num=num/10; i++; } if(i>=k) return a[k-1]; else return 0; } 第3题: 哥德巴赫猜想指出:任何一个不小于6的偶数都可以表示为两个素数之和。例如:6=3+3 8=3+5 … 50=3+47。从键盘输入n(n>=6且为偶数),输出对应的表达式,要求编写函数判断一个数是否为素数。 样例输入:8 样例输出:8=3+5 程序如下: #include int n,n1,n2,hs=0; int prime(int); cin>>n; for(n1=3;n1<=n/2;n1+=2) { if(prime(n1)==1) { n2=n-n1; if(prime(n2)==1) { cout< //判断n是否是素数,若是,返回1,否返回0 int prime(int n) { int gs=0,i; for(i=1;i<=n;i++) if(n%i==0) gs++; if(gs==2) return 1; else return 0;