#include #include #include void fac(int n){ int i; unsigned long long res=1; for(i=1; i<=n; i++){ res*=i; } printf("%d!=%llu",n,res); }//n的阶乘 void judge_prime(int n){ int i; int k=sqrt(n); for(i=2; i<=k; i++){ if(n%i==0){ break; } } if(i>k){ printf("This is prime!"); }else{ printf("This is not prime!"); } } //判断素数 void V_sphere(int r){ printf("The volume of the ball is%f",(4*r*r*r)/3.0); }//球的体积 long long fic(int n){ long long y; if(n==1||n==2){ y=1; }else{ y=fic(n-1)+fic(n-2); } return y; }//求斐波那契数列的第n项值 /*double index1(int x,int n){ int i; double result; if(n=0){ result=1; }else if(n>0){ for(i=0; ib){ t=a; a=b; b=t; } for(i=2; i<=a; i++){ if(a%i==0&&b%i==0){ printf("%d与%d的最小公倍数为%d",a,b,i); loc=1; break; } } if(loc==0){ printf("%d与%d的最小公倍数为1",a,b); } }//求最小公倍数 void swap(int *a,int *b){ int t; t=*a; *a=*b; *b=t; }//交换两个数的值 void sort(int a[],int len){ int i,j,t; for(i=0; ia[j]){ t=a[i]; a[i]=a[j]; a[j]=t; } } } }//数组从小到大排序 int main(int argc, char *argv[]) { int n; int a[1000000]; int k,i; int x1,x2; long long y; double z; printf("请输入你要进行的运算:\n"); printf("1.四则运算\n"); printf("2.求模运算\n"); printf("3.求n的阶乘\n"); printf("4.判断素数\n"); printf("5.求半径为n的球的体积\n"); printf("6.求斐波那契数列的第n项值\n"); printf("7.求x的n次方\n"); printf("8.求两个数最大的公约数\n"); printf("9.求两个数的最小公倍数\n"); printf("10.交换两个数\n"); printf("11.对输入的n个数排序\n"); scanf("%d",&n); switch(n){ case 1: printf("请选择你要进行的运算方式\n"); printf("1.加法\n"); printf("2.减法\n"); printf("3.乘法\n"); printf("4.除法\n"); scanf("%d",&k); if(k==1){ printf("请输入两个加数:\n"); scanf("%d%d",&x1,&x2); printf("%d+%d=%d\n",x1,x2,x1+x2); }else if(k==2){ printf("请输入被减数与减数:\n"); scanf("%d%d",&x1,&x2); printf("%d-%d=%d\n",x1,x2,x1-x2); }else if(k==3){ printf("请输入两个乘数:\n"); scanf("%d%d",&x1,&x2); printf("%d*%d=%d\n",x1,x2,x1*x2); }else if(k==4){ out: printf("请输入被除数与除数:\n"); scanf("%d%d",&x1,&x2); if(x2==0){ printf("输入错误,无法计算,请重新输入\n"); goto out; }else{ printf("%d÷%d=%f\n",x1,x2,x1/(double)x2); } } break; case 2: printf("请输入取模的两个数:\n"); scanf("%d%d",&x1,&x2); printf("%d%%%d=%d\n",x1,x2,x1%x2); break; case 3: printf("请输入要求阶乘的数字:\n"); scanf("%d",&x1); fac(x1); break; case 4: printf("请输入数字:\n"); scanf("%d",&x1); judge_prime(x1); break; case 5: printf("请输入半径:\n"); scanf("%d",&x1); V_sphere(x1); break; case 6: printf("请问需要求斐波那契数列的第几项值:\n"); scanf("%d",&x1); y=fic(x1); printf("斐波那契数列的第%d项值为%lld",x1,y); break; case 7: printf("请依次输入x和n的值:\n"); scanf("%d%d",&x1,&x2); //z=index1(x1,x2); z=pow(x1,x2); printf("%d的%d次方为%f",x1,x2,z); break; case 8: printf("请输入两个数:\n"); scanf("%d%d",&x1,&x2); y=GCD(x1,x2); printf("%d和%d最大公约数为%lld",x1,x2,y); break; case 9: printf("请输入两个数:\n"); scanf("%d%d",&x1,&x2); LCM(x1,x2); break; case 10: printf("请输入需要交换的两个数:\n"); scanf("%d%d",&x1,&x2); swap(&x1,&x2); printf("%d %d",x1,x2); break; case 11: printf("请问需要对几个数进行排序:\n"); scanf("%d",&k); printf("请输入这些数字并用空格隔开:\n"); for(i=0; i