基础语法入门题
算法入门
jiao@lin
这个作者很懒,什么都没留下…
展开
-
<C/C++>问题 C: 叠罗汉
题目描述又到了系列书籍发售的时候了,在ACM俱乐部团队的办公室里堆着许多新版的全书准备出售。团队成员平时喜欢用全书叠罗汉,以此来锻炼身体。不过,他们是按照一定的规则来叠的,规则如下:(为方便起见,我们用D代表数据结构全书用P代表计算机组成原理全书,用O代表操作系统全书,用N代表计算机网络全书。)(1)D可以叠在P、O、N三者任意一个的上面,但是D上面就不能再叠其他的书了。(2)P、O、N三者可以互相层叠,也可以多本P(或O、N)叠在一起。但是,不允许大于等于2本的D叠在一起。(3)D的下方必须至原创 2021-03-03 21:33:56 · 806 阅读 · 1 评论 -
问题 K: 分段函数
题目描述编写程序,输入x,输出yy= x2+3x-4 (x≤5)=X2-5x+7 (x>5)输入一个整数x输出对应的y样例输入 Copy5样例输出 Copy36代码#include <stdio.h>#include <math.h>int main(){ int x,y; scanf("%d",&x); if(x <= 5) { y = pow(x,2)+3*x-4;原创 2021-03-03 21:24:06 · 294 阅读 · 0 评论 -
问题 J: 利滚利
题目描述根据当前银行的利率表,从键盘输入存款金额money,存期year和年利率rate,计算银行存款的本息计算公式为: sum=money(1+rate)year,sum为本息合计,输出保留一位小数。书上印刷有误,year应为指数。输入存款金额money,存期year和年利率rate输出本息合计样例输入 Copy10000 5 0.1样例输出 Copy16105.1代码#include <stdio.h>#include <math.h>int mai原创 2021-03-03 21:23:29 · 1136 阅读 · 0 评论 -
问题 H: 交换变量
题目描述编写程序,从键盘输入两个浮点数给变量xy输出xy在交换x和y中的值后,再输出x和y,验证两个变量中的值是否正确的进行了交换。输入数据可能有整数,请用%g输出。输入两个浮点数输出第一行两个浮点数原来的顺序第二行两个浮点数交换后的顺序样例输入 Copy1.1 2.1样例输出 Copy1.1 2.12.1 1.1提示用临时变量进行交换,输出用%g代码#include <stdio.h>int main(){ float x,y,t; sca原创 2021-03-03 21:23:05 · 1296 阅读 · 0 评论 -
问题 L: 字母排序
题目描述输入三个字母,按字母表顺序输出这三个字母。输入三个字母输出按字母表顺序输出样例输入 Copycba样例输出 Copyabc代码//标程:(注意思路)#include <stdio.h>int main(){ char a,b,c,temp; scanf("%c%c%c",&a,&b,&c); if(a>b) { temp=a,a=b,b=temp; } if(a>c) { temp=a,a=c原创 2021-03-03 21:22:48 · 896 阅读 · 0 评论 -
问题 N: 边境线
题目描述有一个圆,圆心坐标是(0,0),半径r=4.5,任意输入一个点的坐标(x,y),判断这个点是在圆内,圆周上,还是在圆外。输入两个浮点数x,y输出如果在圆内,输出in如果在圆外,输出out如果在圆上,输出on样例输入 Copy1.0 1.0样例输出 Copyin代码#include <stdio.h>#include <math.h>int main(){ float x,y,r1; scanf("%f%f",&x,&原创 2021-03-03 21:22:31 · 348 阅读 · 0 评论 -
问题 M: 加班费
题目描述编写一个计算员工收入的程序,公司按照规定工时的工资10元/小时付给每个员工160个工时的薪水,按3倍的工资率付给160个工时以外的工资。输入输入员工的工时数,1个整数。输出计算员工的收入样例输入 Copy20样例输出 Copy200代码 #include <stdio.h>int main(){ int times,salary; scanf("%d",×); if(times>160) {原创 2021-03-03 21:21:46 · 303 阅读 · 0 评论 -
问题 O: 分数等级
题目描述给出一百分制成绩,要求输出成绩等级‘A’、‘B’、 ‘C’、‘D’、‘E’。90分以上为A80-89分为B70-79分为C60-69 分为D60分以下为E输入一个整数0-100以内输出一个字符,表示成绩等级样例输入 Copy```cpp90样例输出 CopyA代码 #include <stdio.h>int main(){ int grade; scanf("%d",&grade); if(grade>=原创 2021-02-24 10:54:41 · 264 阅读 · 0 评论 -
问题 P: 统计整数
题目描述从键盘输入任意20个整数,统计其中的负数个数,并求所有整数的平均值。输入20个整数输出负数个数和整数平均值(保留1位小数)样例输入 Copy1 2 3 4 5 6 7 8 9 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 0样例输出 Copy9 0.0代码#include <stdio.h>int main(){ int i,s[20],count; float sum,average; count=0; sum=原创 2021-02-24 10:54:21 · 207 阅读 · 0 评论 -
问题 Q: 等差数列
题目描述sum=2+5+8+11+14+……输入整数n,求sum的前n项和。输入正整数n输出n∑(2i-1)i=1样例输入 Copy3样例输出 Copy15代码#include <stdio.h>int main(){ int n,m=2,sum=2; scanf("%d",&n); for(int i=1;i<n;i++){ m+=3; sum+=m; } printf("原创 2021-02-24 10:54:02 · 246 阅读 · 0 评论 -
问题 R: 动态最大值
题目描述输入一个正整数n,在输入n个整数,输出n个数中的最大数。输入第一行n第二行n个数输出最大的数样例输入 Copy101 2 3 4 5 6 7 8 9 10样例输出 Copy10代码#include <stdio.h>int main(){ int n,a[1000],max=0; //注意,这种连续输入最好定义一个数组 scanf("%d",&n); for(int i=0;i<n;i++){ scanf原创 2021-02-24 10:53:46 · 327 阅读 · 0 评论 -
问题 T: 模拟登录
题目描述编写程序模拟简单的密码登录,首先从键盘输入名字和密码,若密码正确则给出问候语。若密码不正确,则给出错误提示,并允许再次输入,直到输入正确的密码或0结束。用户名随意,不超过10个字节。密码123456输入用户名,和若干次密码。输出若密码正确则输出:Hello 用户名换行并退出若错误则输出:Wrong Password!换行并再次输入判断若密码为0则在输出正确与否的结果后退出。样例输入 Copytom123123456样例输出 CopyWrong Password原创 2021-02-24 10:53:02 · 316 阅读 · 0 评论 -
问题 CD: 阶乘数列
题目描述求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个整数。(1≤n≤10)输入n输出Sn样例输入 Copy5样例输出 Copy153代码#include <iostream>#include <cstdio> int main() { int n; scanf("%d", &n); int t = 0; for (int i = 1; i <= n; i++) { int m = 1; for (int j原创 2021-02-24 10:52:29 · 342 阅读 · 0 评论 -
问题 BY: 寻找最低数
题目描述给你一个正整数A(1<=A<=100),输出A的最低数。例如,给你A=26,我们可以将A化成二进制为11010,则A的最低数是10,输出10的十进制为2。再例如,给你A=88,我们可以将A化成二进制为1011000,则A的最低数是1000,输出为8。输入输入包含多组测试样例。每行输入一个正整数A(1<=A<=100)。当输入0时,输入结束。输出对于每一个输入,输出对应的最低数。样例输入 Copy26880样例输出 Copy28题意将十进制写原创 2021-02-24 10:52:05 · 544 阅读 · 0 评论 -
问题 BT: 美丽数
题目描述小明很喜欢3和5这两个数字,他将能被3或5整除的数叫做美丽数。现在给你一个整数N(1<=N<=100000),你能告诉小明第N个美丽数是多少吗?提示 本题需要打表优化输入输入包含多组测试数据。每组输入一个整数N(1<=N<=100000)。输出对于每组输入,输出第N个美丽数。样例输入 Copy1234样例输出 Copy3569...原创 2021-02-24 10:51:44 · 350 阅读 · 0 评论 -
问题 BO: 找规律填数字
题目描述小宇正在读小学,今天老师布置了几道数学题目。小宇平时上课经常不专心,这些他可发愁了,怎么办呢?看看你能不能帮帮他。题目是给你一组有规律序列的前面5个整数,请你给出它后面跟着的5个整数,如:1,2,3,4,5,___,___,_,,___。这是个等差数列,后面应该是6,7,8,9,10,就这么简单。而且现在小宇已经知道这串序列要么是等差数列,要么是等比数列或者是斐波那契数列。输入输入包含多组测试数据。每组输入5个整数,每个数字之间隔一个空格,当5个数字都为0时输入结束。输出对于每组输入,输原创 2021-02-24 10:50:57 · 161 阅读 · 0 评论 -
问题 CA: 大数取模
题目描述现给你两个正整数A和B,请你计算A mod B。为了使问题简单,保证B小于100000。输入输入包含多组测试数据。每行输入包含两个正整数A和B。A的长度不超过1000,并且0<B<100000。输出对于每一个测试样例,输出A mod B。样例输入 Copy2 312 7152455856554521 3250样例输出 Copy251521代码#include<iostream>#include<cstring> using原创 2021-02-09 08:24:33 · 192 阅读 · 0 评论 -
问题 BS: 猜数字
题目描述现在,我想让你猜一个数字x(1000<=x<=9999),它满足以下要求:(1)x % a = 0;(2)(x+1) % b = 0;(3)(x+2) % c = 0;其中1<=a,b,c<=100。给你a,b,c的值,你能告诉我x是多少吗?输入输入的第一行为c,表示测试样例的个数。接下来的c行每行包括a,b,c三个整数。输出对于每一个测试样例,输出所求的x,如果x不存在,则输出Impossible。样例输入 Copy244 38 4925 56原创 2021-02-09 08:24:06 · 819 阅读 · 0 评论 -
问题 BR: 笨鸟先飞
题目描述多多是一只小菜鸟,都说笨鸟先飞,多多也想来个菜鸟先飞。于是它从0点出发,一开始的飞行速度为1m/s,每过一个单位时间多多的飞行速度比上一个单位时间的飞行速度快2m/s,问n(0<n<10^5)个单位时间之后多多飞了多远?输入先输入一个整数T表示有几组数据。每组数据输入一个n,表示多多飞行的时间。输出输出多多飞行了多远,因为数字很大,所以对10000取模。样例输入 Copy212样例输出 Copy14代码#include <iostream>#原创 2021-02-09 08:23:38 · 685 阅读 · 0 评论 -
问题 BQ: ACM CLUB晚会
题目描述ACM CLUB的会员越来越多了,为此,ACM CLUB想为会员们准备一个晚会,晚会节目由会员们表演。消息一出,报名要表演节目的会员很多,多达N个,但是由于场地和时间有限,只能从这N个人中选M个,请问一共有多少种选择方法?输入数据的第一行是一个正整数T,接下来有T组数据,每组数据占一行。每组数据包含两个整数N(来报名的人数,1<=N<=30),M(节目需要的人数0<=M<=30)。输出每组数据输出一个整数,每个输出占一行。样例输入 Copy53 25 3原创 2021-02-09 08:22:58 · 238 阅读 · 0 评论 -
问题 BP: 2^x mod n = 1
题目描述给你一个正整数n,要求你找到最小的x(x>0)满足2^x mod n = 1。输入输入包含多组测试数据。每行一个正整数,代表n的值。输出如果最小的x存在,则输出2^x mod n = 1(注意x和n要用具体的值代替),否则输出2^? mod n = 1。样例输入 Copy25样例输出 Copy2^? mod 2 = 12^4 mod 5 = 1代码#include <stdio.h> int main() { int n,x,y; wh原创 2021-02-09 08:22:19 · 334 阅读 · 0 评论 -
问题 BO: 找规律填数字
题目描述小宇正在读小学,今天老师布置了几道数学题目。小宇平时上课经常不专心,这些他可发愁了,怎么办呢?看看你能不能帮帮他。题目是给你一组有规律序列的前面5个整数,请你给出它后面跟着的5个整数,如:1,2,3,4,5,___,___,_,,___。这是个等差数列,后面应该是6,7,8,9,10,就这么简单。而且现在小宇已经知道这串序列要么是等差数列,要么是等比数列或者是斐波那契数列。输入输入包含多组测试数据。每组输入5个整数,每个数字之间隔一个空格,当5个数字都为0时输入结束。输出对于每组输入,输原创 2021-02-09 08:21:52 · 333 阅读 · 0 评论 -
问题 BN: 验证角谷猜想
题目描述数论中有许多猜想尚未解决,其中有一个被称为“角谷猜想”的问题,该问题在五、六十年代的美国多个著名高校中曾风行一时,这个问题是这样描述的:任何一个大于一的自然数,如果是奇数,则乘以三再加一;如果是偶数,则除以二;得出的结果继续按照前面的规则进行运算,最后必定得到一。现在请你编写一个程序验证他的正确性。输入题目包含多组测试数据,第一行为测试数据组数N,接着是N行的正整数。输出输出验证“角谷猜想”过程中的奇数,最后得到的1不用输出;每个测试题输出一行;每行中只有两个输出之间才能有一个空格;如果没原创 2021-02-09 08:21:22 · 391 阅读 · 0 评论 -
问题 BM: 寻找第二小的数
题目描述求n个整数中第二小的数。相同的整数看成一个数。比如,有5个数分别是1,1,3,4,5,那么第二小的数就是3。输入输入包含多组测试数据。输入的第一行是一个整数C,表示有C组测试数据;每组测试数据的第一行是一个整数n,表示本组测试数据有n个整数(2<=n<=10),接着一行是n个整数(每个数均小于100)。输出为每组测试数据输出第二小的整数,如果不存在第二小的整数则输出“NO”,每组输出占一行。样例输入 Copy321 251 1 3 4 531 1 1样例原创 2021-02-09 08:20:58 · 325 阅读 · 0 评论 -
问题 BK: 计算并集
题目描述给你两个集合,要求{A} + {B}。注:同一个集合中不会有两个相同的元素。输入每组输入数据分为三行,第一行有两个数字n,m(0<n,m<=10000),分别表示集合A和集合B的元素个数。后两行分别表示集合A和集合B。每个元素为不超出int范围的整数,每个元素之间有一个空格隔开。输出针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间有一个空格隔开。样例输入 Copy1 212 31 211 2样例输出 Copy1 2 31 2原创 2021-02-09 08:20:26 · 196 阅读 · 0 评论 -
问题 BL: 判断三角形形状
题目描述给你三角形的三条边,你能告诉我它是哪种三角形吗?如果是直角三角形,请输出“good”。如果是等腰三角形,请输出“perfect”。否则,请输出“just a triangle”。题目保证输入数据合法。输入输入的第一行为一个整数t,表示测试样例的数量。每组样例包含了三个整数a,b,c,代表了三角形的三条边的长度。(0<a,b,c<300)输出对于每组样例,输出结果,每组结果占一行。样例输入 Copy43 4 52 2 3 1 4 44 6 3样例输出 Cop原创 2021-02-09 08:19:51 · 493 阅读 · 0 评论 -
问题 S: 素数表
题目描述从键盘输入m,n在屏幕上按每行10个的格式输出m~n之间的全部素数输入两个整数m n输出m~n间的素数,每行10个,每个数后用空格隔开。如果m和n为素数则包含。样例输入 Copy100 200样例输出 Copy101 103 107 109 113 127 131 137 139 149151 157 163 167 173 179 181 191 193 197199代码//标程:#include <stdio.h>int main(void){ i原创 2021-02-07 18:45:44 · 372 阅读 · 0 评论 -
问题 U: 温度转换
题目描述编写程序输出一张摄氏-华氏温度转换表,摄氏温度的取值区间是从键盘输入,温度间隔10 ℃ 。要求定义和调用函数ctof©,将温度转换为华氏温度F,计算公式:F=32+c*9/5。注意:此题用C语言完成时,只提交头文件和ctof(int c)函数,系统将自动附加下面的main函数后运行,请复制下面的main函数用于调试ctof函数。其他语言的答案无此要求。int main(){int i,start,end;scanf("%d%d",&start,&end);for(int原创 2021-02-07 18:45:01 · 387 阅读 · 0 评论 -
问题 V: 排列数
题目描述编写程序计算排列数Pmn =M! / (m-n)!要求定义函数fact(n)计算n的阶乘。注意:此题用C语言完成时,只提交头文件和fact(int n)函数,系统将自动附加下面的main函数后运行,请复制下面的main函数用于调试fact函数。其他语言的答案无此要求。int main(){int i,n,m;scanf("%d%d",&m,&n);printf("%d\n",fact(m)/fact(m-n));return 0;}输入两个数m、n输出P原创 2021-02-07 18:43:48 · 262 阅读 · 0 评论 -
问题 CC: 丑数
题目描述如果一个数的素因子只包含2,3,5或7,那么我们把这种数叫做丑数。序列1,2,3,4,5,6,7,8,9,10,12,14,15,16,18,20,21,24,25,27…展示了前20个丑数。请你编程寻找这个序列中的第n个元素。输入输入包含多组测试数据。每组输入为一个整数n(1<=n<=5842),当n=0时,输入结束。输出对于每组输入,输出一行“The nth humble number is number.”。里面的n由输入中的n值替换,“st”,“nd”,“rd”和“t原创 2021-02-07 18:43:00 · 606 阅读 · 0 评论 -
问题 CB: 1的个数
题目描述对于一个给定的[0,10000]内的不能被2或5整除的整数n,n放大某些倍数后,结果会是仅由很多1组成的一个数a。现在请你找出最小的那个a中包含的1的个数。输入输入包含多组测试数据。每组输入为一个整数n(0<=n<=10000)。输出对于每组输入,输出最小的那个a中包含的1的个数。样例输入 Copy379901样例输出 Copy3612代码#include <cstdio>#include <iostream>using n原创 2021-02-07 18:42:15 · 151 阅读 · 0 评论 -
问题 BZ: 阶乘的和
题目描述有些数可以表示成若干个不同阶乘的和。例如,9=1!+2!+3!。小明对这些数很感兴趣,所以他给你一个正整数n,想让你告诉他这个数是否可以表示成若干个不同阶乘的和。输入输入包含多组测试数据。每组输入为一个非负整数n(n<=1000000),当n为负数时,输入结束。输出对于每组输入,如果n可以表示成若干个不同阶乘的和,则输出YES,否则输出NO。样例输入 Copy9-1样例输出 CopyYES代码#include<iostream>#include<原创 2021-02-07 18:41:23 · 403 阅读 · 0 评论 -
问题 BX: 算步数
题目描述给你坐标轴上的两个点A和B,请问从A走到B最少需要多少步?我们对走的每一步的步长作出如下限制:第一步和最后一步的步长必须是1,其他的任意一步的步长必须比前一步的步长小1、大1或相等。输入输入包含多组测试数据。每组输入两个整数A和B(0<=A<=B<2^31)。输出对于每组输入,输出从A走到B最少需要多少步。样例输入 Copy45 4845 4945 50样例输出 Copy334代码#include<iostream>#include&原创 2021-02-07 18:40:39 · 260 阅读 · 0 评论 -
问题 BW: sqrt log sin 函数
题目描述小明的老师给小明布置了这样一道作业题,一个序列符合以下定义:现问你这个序列的第n项是多少?输入输入包含多组测试数据。每组输入一个整数n(0<=n<=1000000),当输入-1时,输入结束。输出对于每组输入,输出第n项的值,结果请mod 1000000。样例输入 Copy0-1样例输出 Copy1代码#include<iostream>#include<cstdio>#include<cmath>using nam原创 2021-02-07 18:39:58 · 168 阅读 · 0 评论 -
问题 BV: 找新朋友
题目描述新年快到了,天勤准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都是新朋友,现在会长想知道究竟有几个新朋友?请你编程序帮会长计算出来。输入第一行是测试数据的组数CN(Case number,1<CN<10000),接着有CN行正整数N(1<n<32768),表示会员人数。输出对于每一个N,输出一行新朋友的人数,这样共有CN行输出。样例输入 Copy225608原创 2021-02-07 18:39:12 · 544 阅读 · 0 评论 -
问题 BU: 一个数学问题
题目描述给你两个整数n和m,请你计算有多少个整数对(a,b)满足以下条件:当0<a<b<n时,(a2+b2+m)/(ab)是一个整数。输入输入包含多组测试数据。每组输入为两个整数n和m(0<n<=100),当n=m=0时,输入结束。输出对于每组输入,输出样例标号和满足要求的整数对的个数。样例输入 Copy10 120 330 40 0样例输出 CopyCase 1: 2Case 2: 4Case 3: 5代码#include<iost原创 2021-02-07 18:38:30 · 492 阅读 · 0 评论 -
问题 W: 倒数数列
题目描述编写程序计算并输出s=∑k=1n1/k=1+1/2+1/3+…+1/n 的值。要求定义并调用函数total(n)计算1+1/2+1/3+…+1/n注意:此题的main函数如下所示:int main(){int n;scanf("%d",&n);printf("%.3lf\n",total(n));return 0;}输入正整数n,表示前n项求和输出s,表示前n项的和样例输入 Copy2样例输出 Copy1.500提示函数原型double total(i原创 2021-02-24 10:52:45 · 448 阅读 · 0 评论 -
问题 Y: 平均成绩
题目描述从键盘输入10个学生成绩,求平均分数及高于平均分数的成绩。输入10个整数输出第一行,平均分,保留1位小数。第二行,高于平均分的成绩,每个成绩后加空格。样例输入 Copy60 60 60 70 70 70 80 80 80 70样例输出 Copy70.080 80 80代码#include <stdio.h>int main(){ int i,a[10]; float sum=0,avg; for(i=0;i<10;i++){原创 2021-02-04 10:05:29 · 206 阅读 · 0 评论 -
问题 Z: 科总分
题目描述输入10个学生的学号和5门课程的成绩,统计输出5门课总分最高和最低的学生的学号和他们的总分。输入每行6个整数,共10行。其中,每行第一个整数表示学生的学号,剩下的5个数表示他5门课程的成绩。输出两行,每行两个整数。其中第一行为总分最高的学生的学号,和他的总分,用空格隔开。第二行为总分最低的学生的学号,和他的总分,用空格隔开。样例输入 Copy99211201 1 2 3 4 599211207 2 2 3 4 599211217 3 2 3 4 599211227 4 2原创 2021-02-04 10:04:57 · 226 阅读 · 0 评论 -
问题 CJ: 互质
题目描述给你一个正整数n,请问有多少个比n小的且与n互质的正整数?两个整数互质的意思是,这两个整数没有比1大的公约数。输入输入包含多组测试数据。每组输入是一个正整数n(n<=1000000000)。当n=0时,输入结束。输出对于每组输入,输出比n小的且与n互质的正整数个数。样例输入 Copy7120样例输出 Copy64代码#include<cstdio>#include<cmath>int main(){ int N,n;原创 2021-02-04 10:03:51 · 879 阅读 · 0 评论