![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++题库
一起摸摸鱼
互关互关互关互关互关互关互关互关互关互关互关互关互关互关互关互关互关互关互关
展开
-
2.7 字符菱形 给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。
给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。原创 2022-06-24 08:34:16 · 3254 阅读 · 0 评论 -
2.4 块结构
本例的目的是帮助学生理解块结构和变量作用域的概念。原创 2022-06-24 08:21:37 · 144 阅读 · 0 评论 -
瓜分码粒豆(一)有n个码粒豆,要平均地分给x个同学(即每个同学得到相同数量的码粒豆),求x的所有可能值。即 因式分解
瓜分码粒豆(一)题目描述有n个码粒豆,要平均地分给x个同学(即每个同学得到相同数量的码粒豆),求x的所有可能值。输入码粒豆的数量n,n为正整数输出在一行内输出所有可能的x值,按从小到大的顺序用空格分隔样例输入12样例输出1 2 3 4 6 12#include <iostream>using namespace std;int main(){ // TODO: 定义和输入变量n,表示码粒豆总数 int n;cin原创 2021-09-25 09:19:06 · 63 阅读 · 0 评论 -
CSP考试复习:第三单元 3.5 Mayan 游戏
题目描述Mayan puzzle 是最近流行起来的一个游戏。游戏界面是一个77行\times5×5列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上。游戏通关是指在规定的步数内消除所有的方块,消除方块的规则如下:每步移动可以且仅可以沿横向(即向左或向右)拖动某一方块一格:当拖动这一方块时,如果拖动后到达的位置(以下称目标位置)也有方块,那么这两个方块将交换位置(参见输入输出样例说明中的图66到图77);如果目标位置上没有方块,那么被拖动的方块将...原创 2021-09-19 10:36:49 · 722 阅读 · 0 评论 -
CSP考试复习:第三单元 3.4 埃及分数
3.4 埃及分数【问题描述】在古埃及,人们使用单位分数的和(形如 1/a,其中 a 是自然数)表示一切有理数。如:2/3=1/2+1/6,但不允许 2/3=1/3+1/3,因为加数中有相同的。对于一个分数 a/b,表示方法有很多种,但是哪种最好呢?首先,加数少的比加数多的好;其次,加数个数相同的,最小的分数越大越好。如:19/45=1/3+1/12+1/18019/45=1/3+1/15+1/4519/45=1/3+1/18+1/3019/45=1/4+1/6+1/18019/45=1/原创 2021-09-19 10:32:35 · 88 阅读 · 0 评论 -
CSP考试复习:第三单元 3.3 8数码问题
3.3 8 数码问题【问题描述】用最少的步数实现(空格用 0 表示):(1) BFStypedef int state[9];const int N=1000000;state st[N],goal;int dist[N],parent[N];const int dx[]={-1,1,0,0}, dy[]={0,0,-1,1};void print(int p){if (parent[p]!=-1) print(parent[p]);// 输出st[p]state &s原创 2021-09-19 10:07:06 · 98 阅读 · 0 评论 -
CSP考试复习:第三单元 搜索3.1 N 皇后问题
3.1 N 皇后问题【问题描述】在国际象棋中,皇后可以攻击与她在同一条水平线、垂直线和对角线的棋子。现在有一张 N×N的国际象棋棋盘,在上面放置 N 个皇后。有多少种使皇后不能互相攻击的方案?(N≤13)(1) 深度优先搜索(DFS)逐列(行)搜索。每测试一个位置,就检查它是否与其他皇后冲突,如果冲突,回溯①。每放置一个皇后,就要记录——所在列、“/”对角线和“\”对角线都不能放皇后了。#include <iostream>#include <cstring>us原创 2021-09-18 21:15:16 · 454 阅读 · 0 评论 -
CSP考试复习:第二单元 基础算法2.8Healthy Holsteins :农民约翰以他有世界上最健康的奶牛为骄傲他知道每种饲料的各种维生素的含量,以及一头牛每天需要最少的维生素的量…2.9小结
2.8 Healthy Holsteins【问题描述】农民约翰以他有世界上最健康的奶牛为骄傲。他知道每种饲料的各种维生素的含量,以及一头牛每天需要最少的维生素的量。请你帮助约翰喂养这些奶牛,使得它们能够保持健康,并且消耗的饲料种类最少。【输入格式】第一行:一个数 V(1≤V≤25),表示维生素的种类数。第二行:V 个整数,表示一头牛一天需要的维生素量。一个整数对应一种维生素。第三行:一个数 G(1≤G≤15),表示饲料的种类数。第四行:G 个整数,表示每种饲料的各种维生素的含量。【输出格原创 2021-09-18 21:11:56 · 395 阅读 · 0 评论 -
CSP考试复习:第一单元 C++语言基础1. 5输入和输出!
我为了你们考试已经6连更了,你们的三连也要跟上啊1.5 输入和输出!(1) 使用标准输入/输出头文件:<cstdio>变量约定:FILE *fin, *fout;——fin、fout 分别代表输入文件和输出文件。把它们换成 stdin 和stdout,就是从屏幕输入和从屏幕输出。“1.5 字符串操作”也使用了同样的变量。1. 输出字符串或变量的值:printf("格式字符串", ……);或 fprintf(fout, "格式字符串", ……);格式字符:“%”后连接一个原创 2021-09-14 20:10:18 · 410 阅读 · 0 评论 -
CSP考试复习:第二单元 基础算法2.1 经典枚举问题
2.1 经典枚举问题(1) 韩信点兵【问题描述】正整数 x 除以 3 余 1,除以 5 余 2,除以 7 余 3。问符合条件的最小 x。// 当x比较大时,更合适的做法是解同余式组,具体做法见136页。int x;for (x=1; ;x++)if (x%3==1 && x%5==2 && x%7==3) break;cout<<x;(2) 百鸡问题【问题描述】1 只公鸡 5 文钱,1 只母鸡 3 文钱,3 只小鸡 1 文钱。如果正好原创 2021-09-17 18:24:56 · 228 阅读 · 0 评论 -
CSP考试复习:第二单元 基础算法 2.2 火柴棒等式 2.3 梵塔问题 2.4 斐波那契数列
题目来源:NOIP2008 第二题2.2 火柴棒等式【问题简述】给你 n(n≤24)根火柴棍,你可以拼出多少个形如“A+B=C”的等式?等式中的 A、B、C 是用火柴棍拼出的整数(若该数非零,则最高位不能是 0),数字的形状和电子表上的一样。注意:1. 加号与等号各自需要两根火柴棍。2. 如果 A≠B,则 A+B=C 与 B+A=C 视为不同的等式(A,B,C≥0)。3. n 根火柴棍必须全部用上。【分析】直接枚举 A 和 B(事实证明只到 3 位数)。为了加快速度,事先把 222 .原创 2021-09-17 18:35:33 · 247 阅读 · 0 评论 -
CSP考试复习:第二单元 基础算法 2.6 选择客栈
2.6 选择客栈【问题描述】丽江河边有 n 家(2≤n≤200,000)很有特色的客栈,客栈按照其位置顺序从 1 到 n 编号。每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0~k-1 表示,且 0<k≤50),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相同的两家客栈中。晚上,他们打算选择一家咖啡店喝咖啡,要求咖啡店位于两人住的两家客栈之间(包括他们住的客栈),且咖啡店的最低消费不超过原创 2021-09-18 20:34:03 · 290 阅读 · 0 评论 -
CSP考试复习:第二单元 基础算法 2.7 2的k次方进制数
2.7 进制数【问 题描述】设 r 是个 2k 进制 数( 1≤k≤9),并满足以下条件:(1) r 至 少 是 个 2 位的 2k进制数。(2) 作为 2k 进制数, 除 最后一位外,r 的每一位严格小于它右边相邻的一位。 (3 ) 将 r 转 换为 2 进制数 q 后,则 q 的总位数不超过 w(k<w≤30000)。输入 k 和 W,请满足上述条件的不同 r 的数量。【 分析】本 题不可能直接 枚举——答案不超过 200 位,说明用到...原创 2021-09-18 20:53:05 · 162 阅读 · 0 评论 -
C++解角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。若输入自然数为1,则不需要运算,运算次数为1(用循环和递归分别实现)
角谷定理题目描述 角谷定理:输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。 现在请你编写C++程序求经过多少个数可得到自然数1。如:例如数据22的变化过程:22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1,数据变化次数为16。注意,若输入自然数为1,则不需要运算,运算次数为1(用循环和递归分别实现)。输入一个自然数n(n<=1000)输出...原创 2021-09-14 13:34:23 · 6624 阅读 · 0 评论 -
C++例题:递归求和 请使用递归求解1+2+3+…+n的和
递归求和请使用递归求解1+2+3+…+n的和。输入一个正整数n(n<=1000)输出1到n的和。样例输入5样例输出15#include <iostream>using namespace std;int sum(int n){ if(n==1) return 1; else return(sum(n - 1) + n);}int main(){ int n; cin >> n.原创 2021-09-10 18:22:51 · 8701 阅读 · 2 评论 -
讲函数了!C++解细胞分裂,细胞每分裂一次数量增加一倍,分裂了n次,出现了多少个完整的细胞?
IPO模型分析(IPO模型很重要)IPO模型(第二次说了)(两种代码实现)//代码1:新建变量m的解法#include <iostream>using namespace std;int main(){ int N; cin >> N; //新建变量m表示当前细胞数 long long sum = 1,m = 1; for(int i = 1;i<= N;++i){ m *= 2...原创 2021-09-08 17:58:08 · 1065 阅读 · 1 评论 -
C++例题:输入一个正整数,统计该正整数的各位数字中零的个数,并求各位数字中的最大数
统计0的个数题目描述输入一个正整数,统计该正整数的各位数字中零的个数,并求各位数字中的最大数。输入一个正整数n(1<=n<=1000000)输出两个数,用空格隔开,分别为n的各位数字中0的个数以及各位数字中的最大数。样例输入9002样例输出2 9#include <iostream>using namespace std;int main(){ int n,t,count=0,max=0; cin >>.原创 2021-09-04 11:55:25 · 7266 阅读 · 2 评论 -
C++例题:请问有多少个不同的A*A+B*B=1000的式子(要求A和B均大于0,顺序不同就认为是不同的,比如3*3+2*2=13和2*2+3*3=13被认为是不同的式子)
A*A+B*B Problem题目描述请问有多少个不同的A*A+B*B=1000的式子(要求A和B均大于0,顺序不同就认为是不同的,比如3*3+2*2=13和2*2+3*3=13被认为是不同的式子)。输入无输出满足A*A+B*B=1000的式子的个数。#include <iostream>using namespace std;int main(){ int ans = 0; int A,B; for(A = 1;A <= 31;A++){.原创 2021-09-04 11:53:48 · 140 阅读 · 0 评论 -
C++例题:输入一个整数n(1<=n<=1000),请判断1-n的数字里面,出现了多少次9
统计9的个数题目描述输入一个整数n(1<=n<=1000),请判断1-n的数字里面,出现了多少次9。输入一个正整数n(1<=n<=1000)。输出 1到n中,9的个数。样例输入20样例输出2样例解释即整数1-20中,只有9和19中各有一个数字9,因此总共有2个9。#include<iostream>using namespace std;int main(){ int n, i,ans = 0;...原创 2021-09-04 11:43:41 · 1882 阅读 · 1 评论 -
宾馆房间C++二解:宾馆里有一百个房间,从1-100编了号。第一个服务员把所有的房间门都打开,第二个服务员把所有编号是2的倍数的房间相反处理……以后每个服务员都是如此。共100个服务员哪几扇门是打开的
题目描述宾馆里有一百个房间,从1-100编了号。第一个服务员把所有的房间门都打开了,第二个服务员把所有编号是2的倍数的房间“相反处理”,第三个服务员把所有编号是3的倍数的房间作“相反处理”…,以后每个服务员都是如此。当第100个服务员来过后,哪几扇门是打开的。输入无输出在一行内输出所有开着的门的编号,用空格分隔。#include<iostream>using namespace std;int n = 100;int m ...原创 2021-08-30 13:46:56 · 2339 阅读 · 1 评论 -
宾馆房间C++一解:宾馆里有一百个房间,从1-100编了号。第一个服务员把所有的房间门都打开,第二个服务员把所有编号是2的倍数的房间相反处理……以后每个服务员都是如此。共100个服务员哪几扇门是打开的
宾馆房间题目描述宾馆里有一百个房间,从1-100编了号。第一个服务员把所有的房间门都打开了,第二个服务员把所有编号是2的倍数的房间“相反处理”,第三个服务员把所有编号是3的倍数的房间作“相反处理”…,以后每个服务员都是如此。当第100个服务员来过后,哪几扇门是打开的。输入无输出在一行内输出所有开着的门的编号,用空格分隔。#include<iostream>using namespace std;int a[101] = {0};int ma原创 2021-08-30 13:24:03 · 3937 阅读 · 3 评论 -
计算平均分:题目已知测验中所有同学的分数,求全班平均分
计算平均分题目描述已知上次测验中所有同学的分数,求全班的平均分输入第一行为班级的人数n,第二行为n个学生的分数输出全班的平均分,保留小数点后1位数字(四舍五入)样例输入992 75 88 64 82 91 83 89 79样例输出82.6不废话了,上代码#include <iostream>#include <iomanip>using namespace std;int main(){ int n,sum原创 2021-08-24 13:39:08 · 1086 阅读 · 0 评论 -
幸运儿 题目描述:现在有一群同学,每个人都拥有一定数量的积分;如果某个同学拥有的积分数量可以整除所有同学拥有的积分数量之和,那么我们就称这位同学是幸运儿。现在他们想知道一共有多少个幸运儿?最后有思考题
幸运儿题目描述现在有一群同学,每个人都拥有一定数量的积分。如果某个同学拥有的积分数量可以整除所有同学拥有的积分数量之和,那么我们就称这位同学是幸运儿。现在他们想知道一共有多少个幸运儿?输入第一行输入同学的积分数量,用一个正整数n表示(n<=100)。第二行输入n个数,用空格隔开,表示每个同学拥有的积分数量(测试数据保证积分总和为小于10000的正整数)。输出一个整数,表示幸运儿的数量。样例输入61 2 3 4 5 6样例输出2【样例解释】.原创 2021-08-24 13:46:50 · 158 阅读 · 0 评论 -
C++例题:十进制转二进制
十进制转二进制#include<bits/stdc++.h>using namespace std;int main(){ int a; cin>>a; long long b[100001],c=0; while(a!=0){ b[c]=a%2; c++; a/=2; } for(int g=c-1;g>=0;g--){ cout<<b[g...原创 2021-08-26 13:57:21 · 135 阅读 · 0 评论 -
C++解百钱买百鸡 题目描述我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
题目描述我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?翻译过来,意思是:公鸡一只五块钱,母鸡一只三块钱,小鸡三只一块钱,现在要用刚好一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?最后买回来的鸡,三种类型都要有。输入无输出输出所有的可能解,每个解一行,包括公鸡、母鸡和小鸡的个数,用空格分隔#include<stdio.h&原创 2021-08-30 13:16:17 · 3667 阅读 · 0 评论