9月29号

习题4-2 求幂级数展开的部分和 (20 分)

#include <stdio.h>  
#include <math.h>
 
int main(){  
	double x;//    5>=x>=0
	int k=1;
	double sum=1,sum_1=1;
	int i;
	double item=11;
	scanf("%lf",&x);
	while(fabs(item)>0.00001){
		for(i=1;i<=k;i++){
			sum_1*=i;
		}
		item=pow(x,k)/sum_1;
		sum=sum+item;	
		k++;
		sum_1=1.0;
	}
	
	printf("%.4f",sum);
    return 0;  
 }

sum_1=1.0;

习题4-5 换硬币 (20 分)

 #include <stdio.h>  
int main () {  
    int x, cnt = 0;  
    scanf("%d", &x);  
    //把所有情况算过去,由于按5分、2分、1分硬币的数量从大到小,因此倒序遍历   
    for ( int k = x / 5; k > 0; k-- )   
        for ( int i = x / 2; i > 0; i-- )  
            for ( int j = x; j > 0; j-- )  
                if ( k * 5 + i * 2 + j == x) {  
                    printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n", k, i, j, k + j + i);  
                    cnt++;  
                }  
    printf("count = %d", cnt);  
    return 0;  
}

习题4-6 水仙花数 (20 分)

#include <stdio.h>
int p(int a,int b);
int main(void)
{
  int n,t=0;
  scanf("%d",&n);
  int m=p(10,n-1);
  int v=p(10,n);
  for(int i=m;i<v;i++){
    int k=i;
    int sum=0;
    while(k>0){
    t=k%10;
    k=k/10;
    sum+=p(t,n);
    }
  if(sum==i)
  printf("%d\n",i);
  }
  
return 0;
}
int p(int a,int b)
{
 int t=a;
 for(int i=1;i<b;i++)
  a=a*t;
  
 return a;
}

习题4-7 最大公约数和最小公倍数 (15 分)

#include<stdio.h>
int main()
{
	int a, b, c, m, n;
	scanf("%d %d", &m, &n);
	if(m<n){
		c=m;
		m=n;
		n=c;
	}
	a=m;
	b=n;
	while(b!=0){
		c=a%b;
		a=b;
		b=c;
	}
	printf("%d %d", a, m*n/a);
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/yang8627/article/details/82916309