xjoi题库一级十段题解(c语言版)

验证哥德巴赫猜想

验证哥德巴赫猜想:每一个大于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;
}

 

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值