入门模拟
算法入门模拟
要求:c基础初学者
7个七
这个作者很懒,什么都没留下…
展开
-
算法入门模拟-剪刀石头布
题目描述:大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。输出格式:输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,原创 2020-07-07 19:03:57 · 2035 阅读 · 0 评论 -
算法入门模拟-数字分类
给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和; A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4…; A3 = 被5除后余2的数字的个数; A4 = 被5除后余3的数字的平均数,精确到小数点后1位; A5 = 被5除后余4的数字中最大数字。输入格式:每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N,随后给出N个不超过1000的待分类的正整数。数字间以空格分隔。输出格式:对给定的N个正原创 2020-07-07 17:35:08 · 130 阅读 · 0 评论 -
算法入门模拟-划拳
题源:PATB1046划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的划拳记录,请你统计他们最后分别喝了多少杯酒。输入格式:输入第一行先给出一个正整数N(<=100),随后N行,每行给出一轮划拳的记录,格式为:甲喊 甲划 乙喊 乙划其中“喊”是喊出的数字,“划”是划出的数字,均为不超过1原创 2020-06-10 18:04:27 · 163 阅读 · 0 评论 -
算法入门模拟-时间差
题源:PATB 1026要获得一个C语言程序的运行时间,常用的方法是调用头文件time.h,其中提供了clock()函数,可以捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick,即“时钟打点”。同时还有一个常数CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数f的运行时间,我们只要在调用f之前先调用clock(),获得一个时钟打点数C1;在f执行完成后再调用clock(),获得另一个时钟打点数C2;两次获得的时钟打点数之差(C2-C1)就是f运原创 2020-06-10 17:47:08 · 269 阅读 · 0 评论 -
算法入门模拟-部分A+B
题源:题源:PAT B1016正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。现给定A、DA、B、DB,请编写程序计算PA + PB。输入格式:输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 10的10次方。输出格式:在一行中输出PA + PB的值。输入样例:3862767 6 13530293 3输出样例:399输入样例原创 2020-06-10 17:20:37 · 143 阅读 · 1 评论 -
算法入门模拟-说反话
题源:PAT B1009题目描述:给定一句英语,要求编写程序,将句中所有单词颠倒顺序输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。样例输入:Hello World Here I Come样例输出:Come I Here World Hello代码:#include <原创 2020-05-14 19:14:46 · 155 阅读 · 0 评论 -
算法入门模拟-回文串
题源:codeup 5901题目描述:读入一串字符,判断是否是“回文串”。回文串是一个正读和反读都是一样的字符串。例如“level”,“noon”就是回文串。输入:一行字符串,长度不超过255。输出:是回文串,输出“YES”,不是则输出“NO”。思想:就"level"字符串来说,用a[5]存储"level",a[5]={‘l’,‘e’,‘v’,‘e’,‘l’}。不难发现a[0]=a[4],a[1]=a[3]…,归纳可得a[i]=a[length-1-i]。同理,这规律对于其他回文串也适用。另外,可以原创 2020-05-14 17:26:17 · 103 阅读 · 0 评论 -
算法入门模拟-进制转换
1.p进制数x转换成10进制数y思想:参考计算机组成原理进制转换#include <cstdio>int main(){ int p,x,y=0,product=1; scanf("%d%d",&x,&p); while(x!=0){ y=y+(x%10)*product;//x%10取进制位进行累加 x=x/10;//去掉已取的进制位 product=product*p; } printf("%d",y); return 0;}2.10原创 2020-05-14 16:33:47 · 184 阅读 · 0 评论 -
算法入门模拟-日期差
题源:codeup 1928描述:有2个日期,求2个日期之间的天数,如果2个日期是连续的,则规定他们之间的天数为2天(ps:为啥不规定1天呢)。有多组数据,每组数据有2行,分别表示两个日期,形式为YYYYMMDD例如:输入:2013010120130105输出:5思路:翻日历time对于time1和time2,不妨设time1<time2,否则交换即可。两者不等时循环:...原创 2020-04-28 20:13:42 · 143 阅读 · 0 评论 -
算法入门模拟-简单图形输出
题源:PAT B1036描述:给出正方形边长N(3<=N<=20),和一个字符,间隔一个空格,用给定的字符画出正方形。由于行间距比列间距大,为了让看上去更像正方形,所输出的行数实际是列数的50%(四舍五入取整)例如输入:10 a输出:aaaaaaaaaaa ...原创 2020-04-28 19:42:19 · 111 阅读 · 0 评论 -
算法入门模拟-简单查找
题源:cpdeup 1934描述:输入一个数n(1<=n<=200),然后输入n个数值各不相同的数,再输入一个值x,输出这个值在数组中的下标(从0开始,若不在则输出-1)。测试数据有多组例如输入:412343输出:2#include <cstdio>const int MAX=210;int a[MAX];int main(){ int n,x; ...原创 2020-04-28 19:04:21 · 84 阅读 · 0 评论 -
算法入门模拟-统计找最大
来源:PAT B1032描述:在第一行给出不超过10的5次方正整数N。随后N行,每行输入一位参赛者的信息(学校编号,从1开始计数)和成绩(百分制),中间以空格分隔。要求在一行中输出最高的学校编号和总分,中间用空格分隔,题目保证答案无并列情况。例如:输入:63 652 801 1002 703 403 0输出:2 150#include <stdio.h>c...原创 2020-04-22 18:34:22 · 116 阅读 · 0 评论 -
算法入门模拟 - 3n+1猜想
来源:PAT B1001题意:对于任何一个自然数n(n<1000),偶数就砍一半,奇数就3n+1再砍。按这样的规则看下去,求最终得到1所需的步数(砍了多少次?)#include <stdio.h>int main(){ int n,counter=0; scanf("%d",&n); while(n!=1){ if(n%2==0) n=n/2; el...原创 2020-04-22 17:04:39 · 307 阅读 · 2 评论