Python123第四章答案(自写,仅供参考) By:肇院伟烨
前言
1、代码自己写的,不是标准答案,仅供参考。
2。建议看懂后自己另外写而不是复制粘贴。
3、点击目录可以转跳
文章目录
第四章
第1题
#include <stdio.h>
int main()
{
int N,i;
double sum=0,fen=1;
scanf("%d",&N);
for (i = 1;i <= N;i++)
{
sum=sum+(1.0/fen);
fen = fen + 2;
}
printf("sum = %.6f", sum);
return 0;
}
第2题
#include <math.h>
#include <stdio.h>
int main()
{
int N,i;
double sum=0;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
sum=sum+sqrt(i);
}
printf("sum = %.2lf",sum);
return 0;
}
第3题
#include <stdio.h>
int main()
{
double eps, js,sum=0;
int i=1,fu=1;
scanf("%lf",&eps);
if(eps==1)
sum=0.75;
else
{
do {
js = 1.0 / i;
i += 3;
sum += fu*js;
fu = -fu;
}
while(js > eps);
}
printf("sum = %.6lf", sum);
return 0;
}
第4题
#include<stdio.h>
int main()
{
int num, x1=1, x2=1, x=0, count=3;
scanf("%d", &num);
if(num==1)
{
printf("1");
}
else{
x=x1+x2;
while(x<num){
count++;
x1=x2;
x2=x;
x=x1+x2;
}
printf("%d", count);
}
return 0;
}
第5题
#include <stdio.h>
int main()
{
int n, i, a, min;
scanf("%d", &n);
for ( i = 1; i<= n; i++)
{
scanf("%d", &a);
if (a < min)
min = a;
}
printf("min = %d",min);
return 0;
}
第6题
#include<stdio.h>
int main()
{
int n,h,i,a,b,x,y;
scanf("%d", &n);
h = (n + 1) / 2;
x= n - 1;
y = 1;
for (i = 1; i <= n; i++)
{
if (i < h)
{
for (a = 1; a <= x; a++)
printf(" ");
for (b = 1; b <= y; b++)
printf("* ");
x -= 2;
y += 2;
printf("\n");
}
else if (i == h)
{
for (b = 1; b <= n; b++)
printf("* ");
printf("\n");
x += 2;
y -= 2;
}
else
{
for (a = 1; a <= x; a++)
printf(" ");
for (b = 1; b <= y; b++)
printf("* ");
x += 2;
y -= 2;
printf("\n");
}
}
return 0;
}
第7题
#include<stdio.h>
int main()
{
long long i,n,sum=1;
scanf("%lld", &n);
for (i = 1; i <n;i++)
{
sum = (sum + 1) * 2;
}
printf("%lld", sum);
return 0;
}
第8题
#include<stdio.h>
int main()
{
double i,h,n,sum;
scanf("%lf%lf", &h, &n);
sum = h;
for ( i = 1; i <=n-1; i++)
{
h /= 2;
sum += 2 * h;
}
printf("%.1lf %.1lf", sum, h/2);
return 0;
}
第9题
#include <stdio.h>
int main()
{
int m, n, max, i, gys, gbs;
scanf("%d%d", &m, &n);
max=m>n?m:n;
for (i = 1; i <= max; i++)
{
if (m % i == 0 && n % i == 0)
gys = i;
}
for (i = max;;i++)
{
if (i % m == 0 && i % n == 0)
{
gbs = i;
break;
}
}
printf("%d %d", gys,gbs);
return 0;
}
第10题
#include <stdio.h>
#include <math.h>
int js(int n ,int sz);
int main()
{
int n, i, a, b,result;
scanf("%d", &n);
a = pow(10, n - 1);
b = pow(10, n);
for (i = a; i < b; i++)
{
result = js(n, i);
if (result == i)
printf("%d\n", result);
}
return 0;
}
int js(int n,int sz)
{
int j, w, sum = 0;
for (j = n; j >= 1; j--)
{
w = sz % 10;
sz = sz / 10;
sum += pow(w,n);
}
return sum;
}
第11题
#include<stdio.h>
int main()
{
int n, c5, c2, c1, cs = 0;
scanf("%d", &n);
for (c5 = n / 5; c5 > 0; c5--)
for (c2 = n / 2; c2 > 0; c2--)
for (c1 = n; c1 > 0; c1--)
if (c5 * 5 + c2 * 2 + c1 == n)
{
printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n", c5, c2, c1, c5 + c2 + c1);
cs++;
}
printf("count = %d", cs);
return 0;
}
第12题
#include<stdio.h>
#include<math.h>
int main()
{
int a,n,i,j=0,js,sum=0;
scanf("%d%d",&a,&n);
for (i = 1; i<=n; i++)
{
for (j = 0; j <= i - 1; j++)
{
js = a * pow(10, j);
sum += js;
}
}
printf("s = %d", sum);
return 0;
}
第13题
#include<stdio.h>
#include <math.h>
double fact(int n);
int main()
{
double x,i=0,js=1,n,sum=0;
scanf("%lf", &x);
while(js> 0.00001)
{
js = pow(x, i) / fact(i);
sum += js;
i++;
}
printf("%.4lf", sum);
return 0;
}
double fact(int n)
{
if (n <= 0)
return 1;
else
return n * fact(n - 1);
}
第14题
#include<stdio.h>
int main()
{
int n=0,sum = 0;
while(1)
{
scanf("%d", &n);
if (n <= 0)
break;
if (n % 2 != 0)
sum += n;
}
printf("%d", sum);
return 0;
}
第15题
#include <stdio.h>
int main()
{
double edg, js,sum=0;
int i=1,fu=1;
scanf("%lf",&edg);
if(edg==1)
sum=0.75;
else
{
do {
js = 1.0 / i;
i += 3;
sum += fu*js;
fu = -fu;
}
while(js > edg);
}
printf("sum = %.6lf", sum);
return 0;
}
第16题
#include<stdio.h>
int main()
{
int number, x, n,i=0;
scanf("%d%d", &number, &n);
while (1)
{
i++;
scanf("%d", &x);
if (x< 0||i > n)
{
printf("Game Over\n");
break;
}
if(x < number)
printf("Too small\n");
else if(x > number)
printf("Too big\n");
else if(x == number)
{
if(i==1)
printf("Bingo!\n");
else if(i<= 3)
printf("Lucky You!");
else
printf("Good Guess!");
break;
}
}
return 0;
}
第17题
#include<stdio.h>
int main()
{
int n,i;
double s=1.0,a=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a=a*i;
s=s+1.0/a;
}
printf("%.8f",s);
return 0;
}
第18题
#include <stdio.h>
int main()
{
int n, i, a, min;
scanf("%d", &n);
scanf("%d", &a);
min=a;
for ( i = 1; i< n; i++)
{
scanf("%d", &a);
if (a < min)
min = a;
}
printf("min = %d",min);
return 0;
}
第19题
#include<stdio.h>
int main()
{
int m,n,i,x=0,sum=0;
scanf("%d%d",&m,&n);
for(;m<=n;m++)
{
for(i=2;i<m;i++)
{
if(m%i==0)
break;
}
if(i==m)
{
x++;
sum+=m;
}
}
printf("%d %d",x,sum);
return 0;
}
第20题
#include <stdio.h>
long long fact(int n);
int main()
{
int i;
long long sum = 0;
for (i = 1; i <= 20; i++)
{
sum += fact(i);
}
printf("%lld", sum);
return 0;
}
long long fact(int n)
{
if (n <= 1)
return 1;
return n * fact(n - 1);
}
第21题
#include<stdio.h>
int main()
{
int i;
double sum = 0;
for (i = 1; i <= 100; i++)
sum += i;
for (i = 1; i <= 50; i++)
sum += i * i;
for ( i = 1; i <= 10; i++)
{
sum += 1.0 / i;
}
printf("%lf", sum);
return 0;
}
第22题
#include<stdio.h>
#include<math.h>
int main()
{
double a, x, sum, xn1, xn2;
scanf("%lf", &a);
x = sqrt(a);
do
{
xn1 = x;
x = 1.0 / 2 * (x + a / x);
xn2 = x;
} while (xn1 - xn2 > pow(10, -5));
printf("%lf", xn2);
return 0;
}
第23题
#include <stdio.h>
int main()
{
int m, n, max, i, gys, gbs;
scanf("%d%d", &m, &n);
if (m < n)
max = n;
else
max = m;
for (i = 1; i <= m; i++)
{
if (m % i == 0 && n % i == 0)
{
gys = i;
}
}
for (i = m;; i++)
{
if (i % m == 0 && i % n == 0)
{
gbs = i;
break;
}
}
printf("%d %d", gys,gbs);
return 0;
}
第24题
#include<stdio.h>
int main()
{
int m,n,i,x=0,sum=0;
scanf("%d%d",&m,&n);
for(;m<=n;m++)
{
for(i=2;i<m;i++)
{
if(m%i==0)
break;
}
if(i==m)
{
x++;
sum+=m;
}
}
printf("%d %d",x,sum);
return 0;
}
第25题
#include<stdio.h>
int main()
{
int n,i=0;
scanf("%d", &n);
if (n == 0)
i = 1;
while(n!=0)
{
n /= 10;
i++;
}
printf("%d", i);
return 0;
}
第26题
#include <stdio.h>
int main()
{
int m, n, max, i, gys, gbs;
scanf("%d%d", &m, &n);
if (m < n)
max = n;
else
max = m;
for (i = 1; i <= m; i++)
{
if (m % i == 0 && n % i == 0)
{
gys = i;
}
}
for (i = m;; i++)
{
if (i % m == 0 && i % n == 0)
{
gbs = i;
break;
}
}
printf("%d %d", gys,gbs);
return 0;
}
第27题
#include <stdio.h>
double fact(int n);
int main()
{
double edg, js=1,sum=1;
int i=1;
scanf("%lf", &edg);
for(i=1;js>=edg;i++)
{
js = 1.0 / fact(i);
sum += js;
}
printf("e = %.10lf",sum);
return 0;
}
double fact(int n)
{
if(n<=1)
return 1;
return n*fact(n-1);
}
第28题
#include<stdio.h>
int main()
{
int n=0,sum = 0;
while(1)
{
scanf("%d", &n);
if (n <= 0)
break;
if (n % 2 != 0)
sum += n;
}
printf("%d", sum);
return 0;
}