![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言基础题
書盡
再见容易,再见难
展开
-
枚举
递归实现指数型枚举从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数 n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好 1 个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3#include<bits/stdc++.h>using namespace std原创 2021-04-16 16:44:38 · 73 阅读 · 0 评论 -
数的范围(lower_bound() upper_bound())函数
给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。如果数组中不存在该元素,则返回 -1 -1。输入格式第一行包含整数 n 和 q,表示数组长度和询问个数。第二行包含 n 个整数(均在 1∼10000 范围内),表示完整数组。接下来 q 行,每行包含一个整数 k,表示一个询问元素。输出格式共 q 行,每行包含两个整数,表示所求元素的起始位置和终止位置。如果数组中不存在该元素,则返回 -1 -1。数据原创 2021-04-13 15:10:00 · 158 阅读 · 0 评论 -
递归(实现指数型枚举)
从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数 n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好 1 个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3#include<bits/stdc++.h>using namespace std;int n;/原创 2021-04-12 10:08:32 · 101 阅读 · 0 评论 -
问题 I 排名(结构体排序)
先把做了的题的分加起来(先计算判断分数保存)把大于等于录取分的保存(结构体保存)结构体里的数据排序#include<bits/stdc++.h>using namespace std;struct put{ char x[25];//考号 int y;//分数 }s[1005];bool cmp(put y1,put y2){ if(y1.y==y2.y) return strcmp(y1.x,y2.x)<0;//成绩相等时比较考号,考号的升序输出 ,字符串比较..原创 2021-03-30 13:05:55 · 100 阅读 · 0 评论 -
说反话(二维数组保存与输出)
#include<stdio.h>#include<string.h>int main(){ char a[95]; gets(a); int len=strlen(a); int r=0,h=0;//行,列 char s[95][95];//s[0]~s[r]存放单词 for(int i=0;i<len;i++){ if(a[i]!=' '){//不是空格,存放到是s[r][h],令h++ s[r][h]=a[i]; h++; }e.原创 2021-03-30 08:22:08 · 102 阅读 · 0 评论 -
[NOIP2016]回文日期
#include<bits/stdc++.h>using namespace std;int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};bool put(int x){//判断输入日期是否正确 int y=x/10000;//年 int m=(x/100)%100;//月 int d=x%100;//日 if(m<0||m>12) return false; if(d==0||m!=2&&d.原创 2021-03-29 19:00:27 · 91 阅读 · 0 评论 -
部分A+B(自定义函数修改)
题目描述正整数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 < 1010。输出在一行中输出PA + PB的值。样例输入 Copy3862767 6 13530293 33862767 1 13530293 8样例输出 Copy原创 2021-03-28 10:26:58 · 161 阅读 · 0 评论 -
问题 C: 查找学生信息(阅读理解!)
题目描述输入N个学生的信息,然后进行查询。输入输入的第一行为N,即学生的个数(N<=1000)接下来的N行包括N个学生的信息,信息格式如下:01 李江 男 2102 刘唐 男 2303 张军 男 1904 王娜 女 19然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下:02030104输出输出M行,每行包括一个对应于查询的学生的信息。如果没有对应的学生信息,则输出“No Answer!”样例输入 Copy5001原创 2021-03-28 10:12:01 · 123 阅读 · 0 评论 -
L1-050 倒数第N个字符串
#include<bits/stdc++.h>using namespace std;int main(){ int n,m; cin>>n>>m; char a[10];//6位数,开10足以 int q=pow(26,n);//如果n=3 那么就有26的3次方个字符 int x=q-m;//这里是倒序输出,相减 int j=0; for(int i=n-1;i>=0;i--){ //保存每次判断的字母,数字转换成字符 .原创 2021-03-26 18:18:08 · 81 阅读 · 0 评论 -
L1-054 福到了
#include<stdio.h>//因为使用gets所以提交用选择c编译提交 int main(){ int n; char n1; scanf("%c %d",&n1,&n);//读入第一行 getchar();//getchar()在C程序中的功能是接收一个字符 char str[105][105]; for(int i=0;i<n;i++){ gets(str[i]);//使用gets读入 } int t=0;//记录是否对称。 fo.原创 2021-03-26 16:56:59 · 82 阅读 · 0 评论 -
L1-028 判断素数
本题的目标很简单,就是判断一个给定的正整数是否素数。输入格式:输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于231 的需要判断的正整数。输出格式:对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。输入样例:211111输出样例:YesNo模板函数经常使用!#include<bits/stdc++.h>using namespace std;bool put(int n){//判断素数模板函数 if(n&原创 2021-03-26 14:53:32 · 103 阅读 · 0 评论 -
L1-048 矩阵A乘以B
给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有Ra 行、Ca 列,B有Rb 行、Cb 列,则只有Ca 与Rb 相等时,两个矩阵才能相乘。输入格式:输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有多余的空格。输入保证两个矩阵的R和C都是正数,并且所有整数的绝对值不超过100。输出格式:若输入的两个矩阵的规模是匹配的,则按照输入的原创 2021-03-26 12:17:35 · 69 阅读 · 0 评论 -
L1-044 稳赢
现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。输入格式:输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。输出格式:对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。输入样例:2ChuiZiJianDaoBuJianDaoBuChuiZiChuiZi原创 2021-03-26 11:40:29 · 93 阅读 · 0 评论 -
N个数求和
本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。输入格式:输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 …给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。输出格式:输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分,其中分数部分写成分子/分母,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。输入样例1:5原创 2021-03-19 00:34:10 · 1319 阅读 · 0 评论 -
L1-039 古风排版
中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。输入格式:输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。输出格式:按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。输入样例:4This is a test case输出样例:asa Tst ihe tsice s#include<bits/stdc++.h>using namespace原创 2021-03-18 23:47:35 · 66 阅读 · 0 评论 -
L1-033 出生年()
#include<bits/stdc++.h>using namespace std;//注意测试数据范围 int main(){ int b[4]; int k=1,x,i; int n; //scanf("%d %d",&x,&n); cin>>x>>n; //这里输入2999 4 试试, 答案为13 3012 //输入3000 1 答案 333 3333,好像没有人333岁吧 //i<=3000,有一个数据点不会过。原创 2021-03-18 23:33:17 · 92 阅读 · 0 评论 -
算次数
蒜头君想知道在他笔记本上写的 n 个整数中出现次数最多的数是多少,如果有多个数出现次数并列最多,他想知道数最小的那个。输入格式第一行,一个正整数 n第二行,n 个整数 ai,表示蒜头君的笔记本上的整数输出格式输出一行,包含一个整数,表示答案。数据范围对于 30% 的数据,1≤n≤103,0≤ai≤104。对于 60% 的数据,1≤n≤105,0≤ai≤106对于 100% 的数据,1≤n≤105,−106≤ai≤106Sample Input3-1 -1 2Sample Output原创 2021-03-06 18:57:09 · 209 阅读 · 0 评论 -
数字和
一个数的数字和指它十进制下每一位的数的和,比如 123 的数字和为 1+2+3=6 。蒜头君想知道 l 到 r 的数字和的总和,你能帮帮他吗?输入格式输入一行,包含两个整数 l,r 。输出格式输出一行,包含一个整数,表示答案。数据范围对于100% 的数据,1≤l,r≤106。Sample Input9 10Sample Output10拆分成一位数分别相加#include<bits/stdc++.h>using namespace std;int main(原创 2021-03-06 18:48:06 · 231 阅读 · 0 评论 -
字母数
蒜头君得到了一个仅由小写字母组成的字符串,他在心里还想了一个特殊的字母,他想知道这个字母在这个字符串中出现了多少次,你能帮帮他吗?输入格式第一行,一个仅由小写字母组成的字符串第二行,一个小写字母,表示蒜头君心里想的特殊字母输出格式输出一行,包含一个整数,表示答案。数据范围对于 100%的数据,1≤ 字符串长度 ≤105。Sample InputabbcccddddcSample Output3字符串简单查找常规操作#include<stdio.h>#inclu原创 2021-03-06 18:42:29 · 208 阅读 · 0 评论 -
算表格
蒜头君得到了一个 n行 m 列的表格,他认为第 i 行 j 列的数的重要度为 |i−j|。他想把表格中每个数乘上这个格子的重要度再全部加起来得到一个总和,你能帮他算出这个总和吗?输入格式第一行,两个正整数 n,m接下来 n 行,每行 m 个正整数 aij输出格式输出一行,包含一个整数,表示答案。数据范围对于 60%的数据,1≤n,m≤100,1≤aij≤100。对于 100% 的数据,1≤n,m≤103,1≤aij≤109Sample Input2 31 2 34 5 6Sampl原创 2021-03-06 18:39:14 · 310 阅读 · 0 评论 -
数数字 (过于简单)
花椰妹想知道从 n 到 m 之间一共有多少个整数(包括 n 和 m),于是她一个一个往后数,请问她一共数多少次才能数完。输入格式输入共一行,为两个空格隔开的整数 n,m(1≤n≤m≤1010)测试点编号 n,m1-5 1≤n≤m≤1086-10 1≤n≤m≤10输出格式输出共一行,为花椰妹数数的次数。Sample Input3 5Sample Output3不多解释,看代码#include<stdio.h>int main(){ long long int n原创 2021-03-06 18:09:01 · 109 阅读 · 0 评论 -
L1-011 A-B
本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。输入格式:输入在2行中先后给出字符串A和B。两字符串的长度都不超过104 ,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。输出格式:在一行中打印出A−B的结果字符串。输入样例:I love GPLT! It’s a fun game!aeiou输出样例:I lv GPLT! It’s fn gm!#incl原创 2021-03-03 22:45:33 · 58 阅读 · 1 评论 -
混合牛奶(考虑清楚情况!)
由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要。帮助 Marry 乳业找到最优的牛奶采购方案。Marry 乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的。此外,就像每头奶牛每天只能挤出固定数量的奶,每位奶农每天能提供的牛奶数量是一定的。每天 Marry 乳业可以从奶农手中采购到小于或者等于奶农最大产量的整数数量的牛奶。给出 Marry 乳业每天对牛奶的需求量,还有每位奶农提供的牛奶单价和产量。计算采购足够数量的牛奶所需的最小花费。注:每天所有奶农的总产量原创 2021-02-27 21:44:16 · 218 阅读 · 0 评论 -
整数奇偶排序
蒜术师给了你一个 10 个整数的序列,要求对其重新排序。排序要求:奇数在前,偶数在后;奇数按从大到小排序;偶数按从小到大排序。输入格式输入一行,包含 10 个整数,彼此以一个空格分开,每个整数的范围是大于等于 0,小于等于 100。输出格式按照要求排序后输出一行,包含排序后的 10 个整数,数与数之间以一个空格分开。Sample Input4 7 3 13 11 12 0 47 34 98Sample Output47 13 11 7 3 0 4 12 34 98#include&l原创 2021-02-27 16:15:38 · 143 阅读 · 0 评论 -
数数
请你写一个含有多个 “lanqiao” 字样的句子,然后输出句子中出现 “lanqiao” 字样的个数。(注意:“lanqiao” 字样可以是不同大小写字母的组合,例如: LanQIAO、LanQiao 等)输入格式输入一个字符串(0≤ 字符串长度≤100)。输出格式输出该字符串中 “lanqiao” 字样出现的次数。(请注意: “lanqiao” 字样可以是不同大小写字母的组合。)Sample InputLanqiaoceping,lanqiaoceping,LanqiaocepingSam原创 2021-02-27 16:13:01 · 196 阅读 · 0 评论 -
Collecting Coins
Polycarp has three sisters: Alice, Barbara, and Cerene. They’re collecting coins. Currently, Alice has a coins, Barbara has b coins and Cerene has c coins. Recently Polycarp has returned from the trip around the world and brought n coins.He wants to distr原创 2021-02-26 16:58:06 · 358 阅读 · 0 评论 -
统计难题
Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).Input输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.注意:本题只有一组测试数据,处理到文件结束.Output对于每个提问,给出以该字符串为前缀的单词的数量.Sample原创 2021-02-26 16:50:04 · 167 阅读 · 0 评论 -
比较字符串
给定两个仅由大写字母或小写字母组成的字符串(字符串长度大于 1并且小于 10)它们之间的关系是以下 4 种情况之一两个字符串长度不等。比如 Lanqiao 和 Lan两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写)。比如 Lanqiao 和 Lanqiao;两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达。比如 Lanqiao 和 LanQiao;两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Lanqiao 和 qiaoLan。编程判原创 2021-02-26 16:47:11 · 146 阅读 · 0 评论 -
相邻数之和
请你编程求出二维数组中某点的相邻数之和。相邻数是指与该点邻接的 8个元素,若该点在边角位置,则邻接元素相应减少。下图以 4 行 5 列二维数组 a 为例:a[2][3] 元素的值为 7,其邻接元素8,9,10,5,8,6,8,0 和为 54 。再比如:a[1][0] 元素的值为 6,则其邻元素为 1,2,7,3,4 和为 17 。1 2 3 4 56 7 8 9 103 4 5 7 82 5 6 8 0输入格式第一行输入4 个整数:h,l,c,r分别代表二维数组的行列值和指定点的行列下标。原创 2021-02-26 16:42:31 · 1505 阅读 · 1 评论 -
不要62
杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer)。杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众。不吉利的数字为所有含有4或62的号码。例如:62315 73418 88914都属于不吉利号码。但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列。你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车上牌照了。Input输入的原创 2021-02-26 16:37:14 · 104 阅读 · 0 评论 -
算乘法
蒜头君得到了一个正整数 n ,他想把 n 拆成两个非负整数之和,并且让这两个非负整数之积尽量大。问这两个非负整数之积最大是多少。输入格式输入一行,包含 1 个整数,n(1≤n≤109) 。输出格式输出一行,包含一个整数,表示这两个非负整数之积的最大值。数据范围对于 60% 的数据,1≤n≤104对于 100% 的数据,1≤n≤109Sample Input6Sample Output9Sample Input 27Sample Output 212#include<bi原创 2021-02-26 16:29:20 · 69 阅读 · 0 评论 -
美食
有 n道菜,蒜头将会按顺序从第 1道开始依次吃到第 n道菜,第 i道菜的美味值为 ai。每吃完一道菜,蒜头的好感度(初始为 0)将会累加上 ai,同时 Darko 的总愉悦值会累加上当前的好感度。请你告诉蒜头,吃完所有菜的总愉悦值是多少呢?输入格式输入共 2行。第 1 行输入 1 个正整数 n。第 2 行输入 n 个正整数 ai。输出格式输出共 1 行 1 个整数,表示总愉悦值。数据范围对于前 40% 的数据,n,ai≤10。对于前 70% 的数据,n,ai≤103。对于所有数据,n,a原创 2021-02-19 14:33:18 · 218 阅读 · 0 评论 -
计数问题
试计算在区间 1到 n 的所有整数中,数字 x(0≤x≤9) 共出现了多少次?例如,在 1 到 11 中,即在 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 出现了 4 次。输入格式2个整数 n , x ,之间用一个空格隔开。输出格式1 个整数,表示 x 出现的次数。数据范围对于100%的数据,1≤n≤1,000,000, 0≤x≤9。Sample Input11 1Sample Output4#include<bits/stdc++.h>using n原创 2021-02-19 14:12:11 · 509 阅读 · 0 评论 -
明明的随机数
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 N个 1 到 1000之间的随机整数( N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入格式输入有 2行,第 1行为 1 个正整数,表示所生成的随机数的个数:N。第 2行有 N 个用空格隔开的正整数,为所产生的随机数。输出格式输出2 行,第 1 行为 1 个正整原创 2021-02-19 13:58:59 · 85 阅读 · 0 评论 -
绝对值排序
输入 n≤100个整数,按照绝对值从大到小排序后输出。题目保证所有的数的绝对值都不相等。输入格式第一个数字为 n,接着是 n个整数。输出格式输出这 n个整数排序后的结果。Sample Input33 -4 2Sample Output-4 3 2#include<bits/stdc++.h>using namespace std;int main(){ int n,i,j,t; int a[101]; cin>>n; for(i=0;i<n;i+原创 2021-02-19 13:45:32 · 322 阅读 · 1 评论 -
小哼买书(排序去重)
小哼的学校要建立一个图书角,老师派小哼去找一些同学做调查,看看同学们都喜欢读哪些书。小哼让每个同学写出一个自己最想读的书的ISBN号(你知道吗?每本书都有唯一的ISBN号,不信话你去找本书翻到背面看看)。当然有一些好书会有很多同学都喜欢,这样就会收集到很多重复的ISBN号。小哼需要去掉其中重复的ISBN号,即每个ISBN号只保留一个,也就说同样的书只买一本(学校真是够抠门的)。然后再把这些ISBN号从小到大排序,小哼将按照排序好的ISBN号去书店去买书。请你协助小哼完成“去重”与“排序”的工作。输入格式:原创 2021-02-08 16:40:59 · 210 阅读 · 0 评论 -
津津的储蓄计划
津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于100元或恰好100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。例如11月初津津手中还有83元,妈妈给了津津300元。津津预计11月的花销是180元,那么她就会在妈妈那里原创 2021-02-01 18:55:00 · 237 阅读 · 0 评论 -
10012. 数字统计
请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。比如在给定范围[2, 22],数字2在数2中出现了1次,在数12中出现了1次,在数20中出现了1次,在数21中出现了1次,在数22中出现了2次,所以数字2在该范围内一共出现了6次。输入格式:输入共一行,为两个正整数L和R,之间用一个空格隔开。输出格式:输出共1行,表示数字2出现的次数。提示:NOIP普及组2010限制:1≤L≤R≤10000每个测试点1秒样例 1 :输入:3 22输出:5样例 2 :输入:2 1原创 2021-01-31 20:49:04 · 485 阅读 · 0 评论 -
10011. 质因数
已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。输入格式:输入只有一行,包含一个正整数n。输出格式:输入只有一行,包含一个正整数n。限制:对于60%的数据,6 ≤ n ≤ 1000。 对于100%的数据,6 ≤ n ≤ 2 * 10^9。每个测试点1秒样例 1 :输入:6输出:3样例 2 :输入:119输出:17#include<stdio.h>#include<iostream>using namespace std;int ma原创 2021-01-31 19:41:38 · 143 阅读 · 0 评论 -
10009. 数字反转
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。输入格式:输入共1 行,一个整数N。输出格式:输出共1 行,一个整数,表示反转后的新数。提示:NOIP普及组2011限制:-1,000,000,000 ≤ N ≤ 1,000,000,000 。每个测试点1s样例 1 :输入:-290输出:-92样例 2 :输入:900000000输出:9#include<原创 2021-01-31 14:32:32 · 124 阅读 · 0 评论