『ACM C++』 PTA 天梯赛练习集L1 | 012-015
女神节快乐鸭,大学的女生节真的是忙碌呢,到处送礼物,真的是当时男生节的出来混的,总该是要还的hhhhh
------------------------------------------------L1-012----------------------------------------------------------
计算指数
真的没骗你,这道才是简单题 —— 对任意给定的不超过 10 的正整数 n,要求你输出 2n。不难吧?
输入格式:
输入在一行中给出一个不超过 10 的正整数 n。
输出格式:
在一行中按照格式 2^n = 计算结果
输出 2n 的值。
输入样例:
5
输出样例:
2^5 = 32
------------------------------------------------L1-012----------------------------------------------------------
注解:水题,一句话AC
#include<stdio.h> #include<math.h> int times; int main() { scanf("%d",×); printf("2^%d = %d\n",times,(int)pow(2.0,times)); return 0; }
------------------------------------------------L1-013----------------------------------------------------------
计算阶乘和
对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!。
输入格式:
输入在一行中给出一个不超过10的正整数N。
输出格式:
在一行中输出S的值。
输入样例:
3
输出样例:
9
------------------------------------------------L1-013----------------------------------------------------------
注解:这道题有两种写法,第一种就是用递归的方法,第二种就是直接两层循环for,方法都写出来了如下:按需所取。
递归法:
#include<stdio.h> long long int sum,temp; void rec(int times) { if(times == 0) return; temp = 1; for(int i = times;i>0;i--) temp*=i; sum+=temp; rec(times-1); } int main() { int N; scanf("%d",&N); rec(N); printf("%d",sum); return 0; }
循环法:
#include<stdio.h> long long int temp,sum; int main() { int N; scanf("%d",&N); for(int i = N;i>0;i--) { temp = 1; for(int j = i;j>0;j--) temp*=j; sum+=temp; } printf("%d",sum); return 0; }
------------------------------------------------L1-014----------------------------------------------------------
简单题
这次真的没骗你 —— 这道超级简单的题目没有任何输入。
你只需要在一行中输出事实:This is a simple problem.
就可以了。
输入样例:
无
输出样例:
This is a simple problem.
------------------------------------------------L1-014----------------------------------------------------------
注解:我不知道这道题出的意义在哪里??? 无聊吗。。。
#include<stdio.h> int main() { printf("This is a simple problem."); return 0; }
------------------------------------------------L1-015----------------------------------------------------------
跟奥巴马一起画方块
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!
输入格式:
输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C
,间隔一个空格。
输出格式:
输出由给定字符C
画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。
输入样例:
10 a
输出样例:
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
------------------------------------------------L1-015----------------------------------------------------------
注解:这题有点小知识点,那就是如何做到四舍五入,因为一般/除法只能取整,所以这里很容易WA,下面贴上AC代码:
#include<stdio.h> int main() { int N; char T; scanf("%d %c",&N,&T); for(int i = (N+(2/2))/2;i>0;i--) { for(int j = N;j>0;j--) printf("%c",T); printf("\n"); } return 0; }
知识点:若想实现四舍五入或进一法,只需:
ans:结果 a:被除数 b:除数:
1(四舍五入) : ans=(a+(b/2))/b
2(进一法) : ans=(a+(b-1))/b
注:如果有更好的解法,真心希望您能够评论留言贴上您的代码呢~互相帮助互相鼓励才能成长鸭~~