金字塔
时间: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;
}