目录
1044: 不及格率
题目描述
输入n和n个学生成绩(实数),输出不及格率。
输入 输入的第一行是一个整数n,第二行是n个实数,用空格隔开。
输出 输出一个实数,表示不及格率,结果保留2位小数,单独占一行。
样例输入 Copy
8
98 45 86 79 56 75 90 70
样例输出 Copy
0.25
提示
注意,不及格率为0时,输出0.00
#include<stdio.h>
int main()
{
int n,i;
double m,c;
scanf("%d",&n);
c=0.0;
for(i=1;i<=n;i++)
{
scanf("%lf",&m);
if(m<60)
c++;
}
printf("%.2f\n",c/n);
}
Vs
n = int(input())
a = input().split()
c = j = 0
for i in range(n):
if float(a[j]) < 60:
c += 1
j += 1
print("%.2f" %(c/n))
1045: 数值统计
题目描述
统计给定的n个数中,负数、零和正数的个数。
输入 输入的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个整数
输出 输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。
样例输入 Copy
6 0 1 2 3 -1 0
样例输出 Copy
1 2 3
#include<stdio.h>
int main()
{
int n, m, a, b, c, i;
scanf("%d",&n);
a=0,b=0,c=0;
for( i=1;i<=n;i++)
{
scanf("%d",&m);
if(m<0)
a++;
else if(m==0)
b++;
else
c++;
}
printf("%d %d %d",a,b,c);
}
Vs
m = input().split()
a = b = c = 0
j = 1
for i in range(int(m[0])):
if int(m[j]) < 0:
a+=1
elif int(m[j]) == 0:
b+=1
else:
c+=1
j +=1
print("%d %d %d" %(a,b,c))
1046: 奇数的乘积
题目描述
给你n个整数,求他们中所有奇数的乘积。
输入 第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。
输出 输出n个数中的所有奇数的乘积,占一行。
样例输入 Copy
5 2 5 4 6 7
样例输出 Copy
35
#include<stdio.h>
int main()
{
int n, m, i, x;
scanf("%d",&n);
x=1;
for( i=1;i<=n;i++)
{
scanf("%d",&m);
if(m%2!=0)
x=x*m;
}
printf("%d",x);
}
Vs
a = input().split()
x = j = 1
for i in range(int(a[0])):
if int(a[j]) % 2 != 0:
x *= int(a[j])
j += 1
print(x)
1047: 对数表
题目描述
输入两个正整数m和n,输出m到n之间每个整数的自然对数。
输入 输入包括两个整数m和n(m<=n),之间用一个空格隔开。
输出 每行输出一个整数及其对数,整数占4列,对数占8列,右对齐,对数保留4位小数。
样例输入 Copy
2 4
样例输出 Copy
2 0.6931
3 1.0986
4 1.3863
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,m;
double d;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
d=log(i);
printf("%4d%8.4f\n",i,d);
}
}
Vs
import math
m , n = map(int,input().split())
x = m
for i in range(n-m+1):
print("%4d%8.4f" %(x,math.log1p(x-1)))
x += 1
1048: 阶乘表
题目描述
输入一个正整数n(n<=20),输出1到n之间阶乘表。
输入 输入只有一个正整数n。
输出 输出1到n之间的阶乘表,格式见输出样例。每行两个数据,第一个数据占4列,第二个数据占20列,左对齐。
样例输入 Copy
5
样例输出 Copy
1 1
2 2
3 6
4 24
5 120
提示
注意int类型的表示范围
#include<stdio.h>
int main()
{
int n,i;
double fact;
scanf("%d",&n);
fact=1.0;
for( i=1;i<=n;i++)
{
fact=fact*i;
printf("%-4d%-20.0f\n",i, fact);
}
}
Vs
n =int(input())
x = 1
for i in range(1,n+1):
x*=i
print("%-4d%-20d" %(i,x))
1049: 平方和与立方和
题目描述
给定两个整数m和n,求出m~n这段连续的整数中所有偶数的平方和以及所有奇数的立方和。
输入 由两个整数m和n组成,你可以假定m<=n.
输出 应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。32位整数足以保存结果。
样例输入 Copy
2 5
样例输出 Copy
20 152
#include<stdio.h>
int main()
{
int n,i,m,x,y;
scanf("%d%d",&m,&n);
x=0,y=0;
for(i=m;i<=n;i++)
{
if(i%2==0)
x+=i*i;
else
y+=i*i*i;
}
printf("%d %d",x,y);
}
vs
m ,n = map(int,input().split())
x = y = 0
for i in range(n-m+1):
if m % 2 == 0:
x += (m * m)
else:
y += (m ** 3)
m +=1
print(x,y)
1050: 阶乘的累加和
题目描述
求1! + 2! + ……n!
输入 输入一个整数n,你可以假定n不大于10。
输出 输出一个整数,即阶乘累加的结果,单独占一行。
样例输入 Copy
4
样例输出 Copy
33
#include<stdio.h>
int main()
{
int i,n,fact,m;
fact=1,m=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
fact=i*fact;
m+=fact;
}
printf("%d",m);
}
Vs
m = int(input())
x = 1
y = 0
for i in range(1,m+1):
x *=i
y +=x
print(y)
1051: 平方根的和
题目描述
数列的定义如下:
数列的第一项为item,以后各项为前一项的平方根,求数列的前n项的和。
输入 由两个整数item(item<10000)和n(n<1000)组成,item和n的含义如前所述。
输出 输出该数列的和,占一行,要求精度保留2位小数。
样例输入 Copy
84 4
样例输出 Copy
97.93
#include<stdio.h>
#include<math.h>
int main()
{
int i,n;
double sum,item;
scanf("%lf",&item);
scanf("%d",&n);
sum=0;
for(i=1;i<=n;i++)
{
sum+=item;
item=sqrt(item);
}
printf("%.2lf",sum);
}
Vs
import math
m,n = map(int,input().split())
sum = 0
for i in range (n):
sum += m
m = math.sqrt(m)
print("%.2f" %sum)
1052: 数列求和4
题目描述
输入n和a,求a+aa+aaa+…aa…a(n个a),如当n=3,a=2时,2+22+222的结果为246
输入 包含两个整数,n和a,含义如上述,你可以假定n和a都是小于10的非负整数
输出 输出前n项和,单独占一行
样例输入 Copy
3 2
样例输出 Copy
246
#include<stdio.h>
int main()
{
int i,n,a,sum,item;
scanf("%d%d",&n,&a);
sum=0;
item=0;
for(i=1;i<=n;i++)
{
item=item*10+a;
sum+=item;
}
printf("%d\n",sum);
}
Vs
import math
n,a = map(int,input().split())
sum = 0
b = a
for i in range (n):
sum += b
b = a + b * 10
print(sum)
1053: 正弦函数
题目描述
输入x,计算上面公式的前10项和。
输入 输入一个实数x。
输出 输出一个实数,即数列的前10项和,结果保留3位小数。
样例输入 Copy
1
样例输出 Copy
0.841
#include<stdio.h>
int main()
{
int i;
double sum,flag,x, num,deno;
scanf("%lf",&x);
sum=0,flag=1.0,num=x,deno=1;
for(i=1;i<=10;i++)
{
sum+=flag*num/deno;
flag=-flag;
num=num*x*x;
deno=deno*(2*i)*(2*i+1);
// printf("%lld ",deno);
}
// printf("\n");
printf("%.3lf",sum);
}
Vs
x = float(input())
sum=0.0
flag = deno = 1
num = x
for i in range(1,11):
sum += flag*num/deno
flag = -flag
num = num*x*x
deno = deno*(2*i)*(2*i+1)
print("%.3f" %sum)
1054: 猴子吃桃
题目描述
悟空第一天摘下桃子若干,当即吃掉一半,还不过瘾,又多吃一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?
输入 输入一个数n(1<=n<=30)。
输出 输出第一天的桃子个数。
样例输入 Copy
3
样例输出 Copy
10
#include<stdio.h>
int main(void)
{
int n,sum,i;
sum=1;
scanf("%d",&n);
for(i=1;i<=n-1;i++)
{
sum=(sum+1)*2;
}
printf("%d",sum);
}
Vs
n = int(input())
sum = 1
for i in range(1,n):
sum = (sum + 1) * 2
print(sum)