Problem A:计算∑n!
题目描述
输入正整数n(0<n<10),计算∑n!=1!+2!+3!+…+n!
要求:由于阶乘的结果比较大,按浮点数格式输出计算结果,有效数值保留一位小数点。
样例输入
1
5
样例输出
1.0
153.0
答案
#include <stdio.h>
int main(){
float a = 1.0,sum = 0.0;
int n,i;
scanf("%d", &n);
for (i = 1; i <= n; i++){
a = a * i;
sum = sum + a;
}
printf("%.1f", sum);
return 0;
}
Problem B:判断一个正整数是否为素数
题目描述
对于正整数N(N<1000000),如果N只能被1和N整除,则N为素数(质数),否则N为合数。
例如:自然数7,只能被7(它自己)和1整除,所以7是素数。
又如,自然数6,可以被1、2、3、6整除,所以6不是素数。
输入
输入一个正整数N(N<1000000)
输出
如果输入数据为素数,则输出Yes;否则输出No
样例输入
【样例输入1】
2
【样例输入2】
73
【样例输入3】
119
样例输出
【样例输出1】
Yes
【样例输出2】
Yes
【样例输出3】
No
答案
#include<stdio.h>
#include<math.h>
int main(){
int n,i;
double k;
scanf("%d", &n);
k = sqrt(n);
for (i = 2; i <= k;i++){
if (n % i == 0) break;
}
if (i <= k || n == 1) printf("No");
else printf("Yes");
return 0;
}
Problem C:寻找阳面教室
题目描述
万里学院的教学楼有1号楼、3号楼、5号楼、53号楼等,门牌号尾号是奇数的教室在阳面,门牌号尾号是偶数的教室在阴面。例如,5201、53311在阳面,5202在阴面。
输入
第1行输入n(1≤n≤100),表示n个教室的编号。
接下来输入n行,每行为1个教室的编号x(1000≤x≤99999)
输出
输出共有2行,第1行输出阳面教室的编号(2个教室编号用一个空格隔开),第2行表示阳面教室的个数。
样例输入
3
5201
53311
5202
样例输出
5201 53311
2
答案
#include <stdio.h>
int main(){
int i,n,sum = 0;
scanf("%d",&n);
int a[n];
for(i = 0;i < n;i++){
scanf("%d",&a[i]);
}
for(i = 0;i < n;i++){
if<