- 题解
《10.2训练赛》题解
- 2022-10-3 10:34:38 @
A.画图
给你一个N,你能用‘*’画出一个边长为N的正方形
现在需要你做的是,画出正方形被从右上至左下切掉之后上面的那一半,也就是一个三角形
Input
有一个整数T,表示T组测试数据 接下来T行,每行一个整数N
Output
画出符合的三角形
Sample Input
3
3
4
5
Sample Output
***
**
*
****
***
**
*
*****
****
***
**
*
代码(4eyebird)
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int m;
scanf("%d",&m);
for(int i=0;i<m;i++)
{
for(int j=m-i;j>0;j--)printf("*");
printf("\n");
}
}
return 0;
}
B.打印图形
** **打印出以下图形。
Sample Input
4
Sample Output
*
***
*****
*******
代码(XCCX---)
#include<stdio.h>
int main()
{
int t;
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
for(int j=0;j<t-i;j++)
{
printf(" ");
}
for(int k=0;k<2*i-1;k++)
{
printf("*");
}
printf("\n");
}
return 0;
}
C.打印菱形
题目描述
wpm想要学画图,但是技术太菜,找wbt求助,wbt嫌弃他菜,决定考考他,于是,给了他一个数字nn,让他打印一个nn行的菱形,但是太菜的wpm解决不了,你可以帮帮他吗
输入格式
一个整数nn(保证为奇数,且 n <= 100n<=100)
输出格式
所要打印的图形
样例
输入样例
3
输出样例
*
***
*
代码(yq11037)
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n/2;i++){
for(int j=1;j<=n/2-i+1;j++){
printf(" ");
}
for(int j=2*i-1;j>=1;j--){
printf("*");
}
printf("\n");
}
for(int i=1;i<=n;i++){
printf("*");
}
printf("\n");
for(int i=n/2;i>=1;i--){
for(int j=1;j<=n/2-i+1;j++){
printf(" ");
}
for(int j=1;j<=2*i-1;j++){
printf("*");
}
printf("\n");
}
return 0;
}
D.还是打印菱形
这个菱形大家熟悉吧。
*
***
*****
***
*
现在要求的是打印这样的菱形:不要*号,要最外层是字母A,然后里一层是B,再里一层是C···这样呢?
A
ABA
ABCBA
ABA
A
Input
第一行是一个正整数N(N≤25),代表有N组测试数据。 每一组数据包括一个正整数M(1≤M≤25),表示菱形的半径(直径就是M*2+1)。
Output
对于每组数据,输出要求打印的菱形。
Sample Input
1
2
Sample Output
A
ABA
ABCBA
ABA
A
代码(4eyebird)
#include<stdio.h>
char p[]="0ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int main()
{
int N;
scanf("%d",&N);
while(N--)
{
int m;
scanf("%d",&m);
int n=m*2+1;
n=n/2+1;
if(n==0)printf("*");
for(int i=1;i<=n;i++)
{
int cnt=0;
for(int j=n-i;j>0;j--)
printf(" ");
for(int j=1;j<=i;j++)
{
printf("%c",p[j]);
}
for(int j=i-1;j>=1;j--)
{
printf("%c",p[j]);
}
printf("\n");
}
for(int i=n-1;i>=1;i--)
{
int cnt=0;
for(int j=n-i;j>0;j--)
printf(" ");
for(int j=1;j<=i;j++)
{
printf("%c",p[j]);
}
for(int j=i-1;j>=1;j--)
{
printf("%c",p[j]);
}
printf("\n");
}
}
return 0;
}
E.C语言程序设计教程(第三版)课后习题5.6
给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。 90分以上为A 80-89分为B 70-79分为C 60-69分为D 60分以下为E
Input
一个整数0-100以内
Output
一个字符,表示成绩等级
Sample Input
90
Sample Output
A
HINT
分段函数返回字符
代码(ZIFEI)
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n<=100&n>=90)
{
printf("A");
}
if(n>=80&&n<90)
{
printf("B");
}
if(n>=70&&n<80)
{
printf("C");;
}
if(n>=60&&n<70)
{
printf("D");
}
if(n>=0&&n<60)
{
printf("E");
}
}
F.C语言程序设计教程(第三版)课后习题5.8
企业发放的奖金根据利润提成。利润低于或等于100000元的,奖金可提10%; 利润高于100000元,低于200000元(100000<I≤200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成 7.5%; 200000<I≤400000时,低于200000元部分仍按上述办法提成,(下同),高于200000元的部分按5%提成; 400000<I≤600000元时,高于400000元的部分按3%提成;600000<I≤1000000时,高于600000元的部分按1.5%提成; I>1000000时,超过1000000元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。
Input
一个整数,当月利润。
Output
一个整数,奖金。
Sample Input
900
Sample Output
90
代码(WEI)
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
if(n<=100000)
{
cout << n*0.1;
}
else if(n>100000&&n<=200000)
{
int a=n-100000;
cout << a*0.075+10000;
}
else if(n>200000&&n<=400000)
{
int a=n-200000;
cout << a*0.05+10000+7500;
}
else if(n>400000&&n<=600000)
{
int a=n-400000;
cout << a*0.03+10000+7500+10000;
}
else if(n>600000&&n<=1000000)
{
int a=n-600000;
cout << a*0.015+10000+7500+10000+6000;
}
return 0;
}
G. C语言程序设计教程(第三版)课后习题6.3
求Sn=2+22+222+…+22…222(有n个2)之值,其中a是一个数字。 例如:2+22+222+2222+22222(n=5),n由键盘输入。
Input
n
Output
Sn
Sample Input
5
Sample Output
24690
代码(WEI)
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
long long sum=0;
int a=0;
for(int i=0;i<n;i++)
{
sum+=a*10+2;
a=a*10+2;
}
cout << sum;
return 0;
}
H.C语言程序设计教程(第三版)课后习题6.4
求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字。 n <= 40
Input
n
Output
和
Sample Input
5
Sample Output
153
代码(ZIFEI)
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
long long sum=0;
long long k=1;
for(int i=1;i<=n;i++)
{
k=k*i;
sum=sum+k;
}
printf("%lld",sum);
}
I.空心菱形
打印菱形想必大家都会吧,那么空心的呢?
Input
输入一个数n,代表菱形的长度
Output
输出与n对应大小的菱形
Sample Input
7
Sample Output
*
* *
* *
* *
* *
* *
*
代码(4eyebird)
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
n=n/2+1;
if(n==0)printf("*");
for(int i=1;i<=n;i++)
{
for(int j=n-i;j>0;j--)
printf(" ");
for(int j=1;j<=i*2-1;j++)
{
if(j==1||j==i*2-1)printf("*");
else printf(" ");
}
printf("\n");
}
for(int i=n-1;i>0;i--)
{
for(int j=n-i;j>0;j--)
printf(" ");
for(int j=1;j<=i*2-1;j++)
{
if(j==1||j==i*2-1)printf("*");
else printf(" ");
}
printf("\n");
}
return 0;
}