目录
1.使用函数求素数和
2.使用函数验证哥德巴赫猜想
3.使用函数输出水仙花数
4.递归求阶乘和
5.递归求简单交错幂级数的部分和
6.十进制转换二进制
1.使用函数求素数和
int prime( int p ) { int i = 0; int flag = 1; if(p<2) flag=0; for(i=2;i
2.使用函数验证哥德巴赫猜想注意:1.判断素数是n<2的情况要考虑 2.for(i=m;i<=n;i++)
int prime( int p ) { for(int i=2;i<=p;i++) { if(p%i==0) { if(p==i) return 1; else return 0; } } } void Goldbach( int n ) { for(int i=2;i<=n;i++) { if(prime(i)==1 && prime(n-i)==1)//这里巧妙地解决n=p+q还要pq均为素数的问题,值得学习 { printf("%d=%d+%d",n,i,n-i); break;//记得打破循环,题目要求只输出最小的p的情况 } } }3.使用函数输出水仙花数判断素数的函数参考题目一为准
int narcissistic( int number ) { int i,n,sum=0,m=0,a=1,b; n=number; while(n)//先判断位数 { n/=10; m++; } n=number; while(n) { a=1; b=n%10; for(i=1;i<=m;i++)a*=b; n/=10; sum+=a; } if(sum==number)return 1; else return 0; } void PrintN( int m, int n ) { int i; for(i=m+1;i 4.递归求阶乘和注意:for(i=1;i<=m;i++)
double fact( int n ) { if(n>1) return n*fact(n-1); else if(n==1||n==0) return 1; } double factsum( int n ) { if(n<1) return 0; return factsum(n-1)+fact(n); }double fact( int n ) { int i,a=1; if(n<=0)a=1; else for(i=1;i<=n;i++)a*=i; return a; } double factsum( int n ) { int i,j,t,sum=0; if(n<=0)return sum; else for(i=1;i<=n;i++) { for(j=1;j<=i;j++)t*=j; sum+=t; t=1;//每次循环后重置为1 } return sum; }double fact( int n ) { int s; if( n==0 )s = 1; else s = n*fact(n - 1); return s; } double factsum( int n ) { double sum = 0; int i; for(i = 1;i <= n;i++) sum+=fact(i); return sum; }5.递归求简单交错幂级数的部分和double fn( double x, int n ){ double f; if(n==1){ f=x; }else{ f=pow(-1,n-1)*pow(x,n)+fn(x,n-1); } return f; }double fn( double x, int n ) { if(n==1) return x; else return x-fn(x,n-1)*x; }6.十进制转换二进制
void dectobin( int n ) { if (n == 0) printf("0"); else if (n == 1) printf("1"); else { dectobin(n / 2); printf("%d", n % 2); } }void dectobin( int n ) { int a[10]; int temp, i; do { a[i++] = n % 2; }while ((n /= 2) != 0); for (--i; i >= 0; i--) printf("%d", a[i]); }复习参考:二进制和十进制的转换_Y_momo的博客-CSDN博客_二进制转化为十进制
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)