验证哥德巴赫猜想
验证哥德巴赫猜想:每一个大于2的偶数都可以表示成两个质数之和。输入偶数N(N>=4),N的一个表示式子。
4=2+2
6=3+3
8=3+5
10=3+7
12=5+7
样例输入:
4
样例输出:
4=2+2
时间限制:
1000
空间限制:
65536
提示:
要求:输出式子第一个质数最小的情况,并请将式子中两个数较小的一个放在前面。
#include <stdio.h>
#include <math.h>
int solve(int n){
int i;
for(i=2;i<(int)sqrt(n)+1;i++){
if(n%i==0){
return 0;
}
}
return 1;
}
int main(){
int n,i,j;
scanf("%d",&n);
for(i=2;i<n;i++){
for(j=2;j<n;j++){
if(solve(i)&&solve(j)){
if(i+j==n){
printf("%d=%d+%d",n,i,j);
return 0;
}
}
}
}
return 0;
}
三打白骨精
时间:1s 空间:256M
题目描述:
白骨精是西游记中的妖怪,知道人类的弱点,在唐僧师徒一行西天取经的过程中三次变成人形接近唐僧,想吃唐僧肉,均被孙悟空识破。结果唐僧以为悟空误杀好人,赶走了悟空,悟空因此回了花果山,并叮嘱猪八戒和沙僧要照顾好唐僧。现在假设你和悟空正在与白骨精激战,悟空的金箍棒每次可以对白骨精造成a点伤害值, 你的钉耙可以对白骨精造成b点伤害值,白骨精有c的血量,但是白骨精有一个技能,只要血量不是恰好减成0,它都不会死。比如白骨精的血量现在是10,你给它一个11的伤害,减成了-1,它会无视你这次伤害,但是如果给他一个10的伤害,它就挂了。现在问你,这一波打斗能否彻底打死白骨精。
输入格式:
输入一行,包含三个整数a,b,c
输出格式:
输出一行,如果这次战斗白骨精能被打死输出”Yes”,否则输出”No”.
样例输入1:
4 6 15样例输出1:
No样例输入2:
3 2 7样例输出2:
Yes样例输入3:
6 11 6样例输出3:
Yes约定:
1<=a,b<=100,1<=c<=10000
#include <stdio.h>
int main() {
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
if (a == 1 || b == 1 || a == c || b == c) {
printf("Yes");
} else {
int i,j;
for (i = 1; i <= c / a; ++i) {
for ( j = 1; j <= (c - i * a) / b; ++j) {
if (i * a + j * b == c) {
printf("Yes");
return 0;
}
}
}
printf("No");
}
return 0;
}
九九乘法表
时间:1s 空间:64M
题目描述:
“一一得一,一二得二”
还记得小时候背的九九乘法表么?
现在让我们重温一下儿时的记忆吧。
请编程输出九九乘法表,输出格式见样例。注意你在本地的输出,要跟样例输出长得一模一样哦。
输入格式:
此题没有输入
输出格式:
输出乘法表,对齐方式见样例输出
样例输入:
无
样例输出:
1*1= 1 1*2= 2 2*2= 4 1*3= 3 2*3= 6 3*3= 9 ......(省略若干行) 1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
#include <stdio.h>
int main() {
int i,j;
for(i=1;i<=9;i++){
for(j=1;j<=i;j++){
printf("%d*%d=%2d ",j,i,i*j);
}
printf("\n");
}
return 0;
}
换零钱
时间:1s 空间:256M
题目描述:
一张n元人民币换成1元、2元、5元的零钱,编程计算共有多少种方法?
输入格式:
输入一行,包含一个整数
输出格式:
输出一行,包含一个整数
样例输入:
100样例输出:
541约定:
1<=n<=200
#include <stdio.h>
int main() {
int n,i,j,k;
scanf("%d",&n);
int count=0;
for(i=0;5*i<=n;i++){
for(j=0;5*i+2*j<=n;j++){
for(k=0;5*i+2*j+k<=n;k++){
if(5*i+2*j+k==n){
count++;
}
}
}
}
printf("%d",count);
return 0;
}
百钱买百鸡
Time Limit: 1000 MS Memory Limit: 65536 KB
题目描述
鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。N元钱买N只鸡,问鸡翁、鸡母、鸡雏各几何?
输入格式
一个整数 N,代表N元钱。
输出格式
多行数据,每行三个整数,分别代表鸡翁、鸡母、鸡雏的数量。请按照数量由少到多输出每一行,参考样例数据。
样例数据
Input#1
100
Output#1
0 25 75 4 18 78 8 11 81 12 4 84
数据范围
0<x<700
#include <stdio.h>
int main() {
int N, i, j, k;
scanf("%d", &N);
for (i = 0; i <= N / 5; i++) {
for (j = 0; j <= (N - 5 * i) / 3; j++) {
k = N - i - j;
if (5 * i + 3 * j + k/3.0 == N) {
printf("%d %d %d\n", i, j, k);
}
}
}
return 0;
}
打印数字三角形
时间:1s 空间:64M
题目描述:
打印数字三角形,从1开始输出,第i行输出i个数,每个数字按4个位置输出,右对齐
注:c语言中 %4d可以输出一个数,占据四个位置,右对齐。
输入格式:
输入一行,包含一个整数n,代表输出的三角形共有几行。
输出格式:
输出n行,第i行,有i个数, 每个数占据四个位置。
样例输入:
4
样例输出:
1 2 3 4 5 6 7 8 9 10
约定:
1<=n<=140
#include <stdio.h>
int main() {
int N, i, j;
scanf("%d", &N);
int count=1;
for (i = 1; i <= N; i++) {
for (j = 1; j <= i; j++) {
printf("%4d",count++);
}
printf("\n");
}
return 0;
}