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

金字塔

时间:0. 1s 空间: 128 M

题目描述:

小明发现电脑可以打印出一些简单有趣的图形,比如金字塔:

复制代码
  *
 ***
*****

小明希望能够过更便捷的打印出金字塔,比如输入n,就输出高度为n的金字塔。请你帮助小明实现。

输入格式:

仅一个正整数 n

输出格式:

共n行,组成如题干描述的金字塔形状。

样例输入1:

复制代码
4

样例输出1:

复制代码
   *
  ***
 *****
*******

约定:

n(2≤n≤40)

cpp 复制代码
#include <stdio.h>
int main() {
    int n,i,j;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        for(j=1;j<=n-i;j++){
            printf(" ");
        }
        for(j=1;j<=2*i-1;j++){
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

镂空金字塔

时间:0.1s 空间:128M

题目描述:

小明希望打印出来的金字塔能够更特别一点,比如镂空的金字塔:

     *
    * *
   * * *
  * * * *
 * * * * *
* * * * * *

小明希望能够过更便捷的打印出镂空的金字塔,比如输入n,就输出高度为n的镂空金字塔。请你帮助小明实现。

输入格式:

仅一个正整数 n(2≤n≤40)

输出格式:

共n行,组成如题干描述的镂空金字塔形状。

样例输入1:

5

样例输出1:

    *
   * *
  * * *
 * * * *
* * * * *

约定:

2≤n≤40

cpp 复制代码
#include <stdio.h>
int main() {
    int n,i,j;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        for(j=1;j<=n-i;j++){
            printf(" ");
        }
        for(j=1;j<=i;j++){
            printf("* ");
        }
        printf("\n");
    }
    return 0;
}

多项式求值Ⅰ

时间:0.2s 空间:32M
题目描述:

输入1个正整数n, 计算1+(1+2)+(1+2+3)+...+(1+2+3+...+n)

输入格式:

输入一个整数

输出格式:

输出一个整数

样例输入:
复制代码
4
样例输出:
复制代码
20

提示:

输入4,会得到20:

1 +

1+2 +

1+2+3 +

1+2+3+4

= 1 + 3 + 6 + 10

= 20

cpp 复制代码
#include <stdio.h>
int main() {
    int n,i,j;
    scanf("%d",&n);
    int sum=0;
    for(i=1;i<=n;i++){
        int res=0;
        for(j=1;j<=i;j++){
            res+=j;
        }
        sum+=res;
    }
    printf("%d",sum);
    return 0;
}

完全数

时间:1s;空间:64M

问题描述:

所谓完全数是这样一种正整数,除它本身之外的所有约数( 真因子 )的和恰好等于它本身。

比如 6 的真因子有 1,2,3, 而 1+2+3=6, 所以 6 就是一个完全数。

给定一个正整数 n,输出 1 到 n 之间所有的完全数,每个数字一行。

样例输入:
复制代码
10
样例输出:
复制代码
6
约定:

1<=n<=10000

时间限制:

1000 ms

空间限制:

65535 kb

cpp 复制代码
#include <stdio.h>
int main() {
    int n,i,j;
    scanf("%d",&n);
    int sum=0;
    for(i=1;i<=n;i++){
        sum=0;
        for(j=1;j<i;j++){
            if(i%j==0){
                sum+=j;
            }
        }
        if(sum==i){
            printf("%d\n",i);
        }
    }
    return 0;
}

N以内的质数

时间:1s;空间:256M

题目描述:

输入一个自然数n,按质数定义求出1−n中所有的质数,

输入格式:

输入一行,包含一个整数n

输出格式:

输出一行,包含所有的质数,按照从小到大的顺序输出,以空格隔开。

样例输入:

复制代码
20

样例输出:

复制代码
2 3 5 7 11 13 17 19

约定:

1<=n<=2000

cpp 复制代码
#include <stdio.h>
int main() {
    int n,i,j;
    scanf("%d",&n);
    int flag=0;
    for(i=2;i<=n;i++){
        flag=0;
        for(j=2;j<i;j++){
            if(i%j==0){
                flag=1;
            }
        }
        if(flag==0){
            printf("%d ",i);
        }
    }
    return 0;
}

N以内的质数

时间:1s;空间:256M

题目描述:

输入一个自然数n,按质数定义求出1−n中所有的质数,

输入格式:

输入一行,包含一个整数n

输出格式:

输出一行,包含所有的质数,按照从小到大的顺序输出,以空格隔开。

样例输入:

复制代码
20

样例输出:

复制代码
2 3 5 7 11 13 17 19

约定:

1<=n<=2000

cpp 复制代码
#include <stdio.h>
int main() {
    int n,i,j;
    scanf("%d",&n);
    int flag=0;
    for(i=2;i<=n;i++){
        flag=0;
        for(j=2;j<i;j++){
            if(i%j==0){
                flag=1;
            }
        }
        if(flag==0){
            printf("%d ",i);
        }
    }
    return 0;
}

阶乘求和

时间:1s 空间:64M
题目描述:

在数学上,1 到 k 的乘积我们称为 k 的阶乘,用 k! 表示,即 k!=1×2×3×...×k

输入 n ,请计算S=1!+2!+3!+...+n!的值。

输入格式:

输入一行,包含一个正整数n

输出格式:

输出一行,包含一个整数。

样例输入:
复制代码
2
样例输出:
复制代码
3
约定:

1<=n<=10

提示:

1! + 2!

= 1 + 1*2

= 1 + 2 = 3

cpp 复制代码
#include <stdio.h>
int main() {
    int n,i,j;
    scanf("%d",&n);
    int sum=0;
    for(i=1;i<=n;i++){
        int res=1;
        for(j=1;j<=i;j++){
            res*=j;
        }
        sum+=res;
    }
    printf("%d",sum);
    return 0;
}

三质数

时间限制:1s 空间:256M
题目描述:

一个数的约数也称为因子,比如1是6的因子,2是6的因子,6是6的因子。

质数只有两个因子,1和它本身

现在定义一种新的质数,三质数,三质数只有三个不同的因子。比如4是三质数,因为它有1,2,4三个因子。比如6不是三质数,因为6有1,2,3,6四个因子。现在有一些数,你需要判断他们是不是三质数。

输入格式:

第一行一个整数T,表示有T组测试数据。

每组测试数据输入一个整数n

输出格式:

对于每组测试数据,判断是否是三质数,如果是输出YES,否则输出NO

样例输入:
复制代码
3
4
5
6
样例输出:
复制代码
YES
NO
NO
约定:

1<=n<=1012,数据组数不超过103

C++:作为参考

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
bool sushu(int x)
{
    for(int i=2;i<=sqrt(x);i++)
    {
        if(x%i==0) return 0;
    }
    if(x!=1)
        return 1;
    else return 0;
}
int main()
{
    double n,x;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>x;
        if(double(sqrt(x))==int(sqrt(x))&&sushu(sqrt(x))) cout<<"YES";
        else cout<<"NO";
        cout<<endl;
    }
    return 0;
}

C语言:

cpp 复制代码
#include <stdio.h>
#include <math.h>
int sushu(int x)
{
    int i=0;
    for(i=2;i<=sqrt(x);i++)
    {
        if(x%i==0) return 0;
    }
    if(x!=1)
        return 1;
    else return 0;
}
int main()
{
    double n,x;
    scanf("%lf",&n);
    for(int i=1;i<=n;i++)
    {
       scanf("%lf",&x);
        if((double)(sqrt(x))==(int)(sqrt(x))&&sushu(sqrt(x))) printf("YES");
        else printf("NO");
        printf("\n");
    }
    return 0;
}
相关推荐
waicsdn_haha6 分钟前
Java/JDK下载、安装及环境配置超详细教程【Windows10、macOS和Linux图文详解】
java·运维·服务器·开发语言·windows·后端·jdk
嵌入式科普7 分钟前
十三、从0开始卷出一个新项目之瑞萨RZN2L串口DMA接收不定长
c语言·stm32·瑞萨·e2studio·rzn2l
_WndProc8 分钟前
C++ 日志输出
开发语言·c++·算法
qq_4335545417 分钟前
C++ 面向对象编程:+号运算符重载,左移运算符重载
开发语言·c++
努力学习编程的伍大侠21 分钟前
基础排序算法
数据结构·c++·算法
数据小爬虫@36 分钟前
如何高效利用Python爬虫按关键字搜索苏宁商品
开发语言·爬虫·python
ZJ_.38 分钟前
WPSJS:让 WPS 办公与 JavaScript 完美联动
开发语言·前端·javascript·vscode·ecmascript·wps
Narutolxy43 分钟前
深入探讨 Go 中的高级表单验证与翻译:Gin 与 Validator 的实践之道20241223
开发语言·golang·gin
XiaoLeisj1 小时前
【递归,搜索与回溯算法 & 综合练习】深入理解暴搜决策树:递归,搜索与回溯算法综合小专题(二)
数据结构·算法·leetcode·决策树·深度优先·剪枝
Hello.Reader1 小时前
全面解析 Golang Gin 框架
开发语言·golang·gin