![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++算法入门
大量例题
My_YueR
守得云开见月明
展开
-
救济金发放(The Dole Queue, UVa 133)
n(n<20)个人站成一圈,逆时针编号为1~n。有两个官员,A从1开始逆时针数,B从n开 始顺时针数。在每一轮中,官员A数k个就停下来,官员B数m个就停下来(注意有可能两个官员停在同一个人上)。接下来被官员选中的人(1个或者2个)离开队伍。输入n,k,m输出每轮里被选中的人的编号(如果有两个人,先输出被A选中的)。例 如,n=10,k=4,m=3,输出为4 8, 9 5, 3 1, 2 6, 10, 7。注意:输出的每个数应当恰好占3列。分析:输出的每个数应当恰好占3列,可以用%3d。有输原创 2022-05-09 23:42:23 · 160 阅读 · 0 评论 -
侩子手游戏(Hangman Judge, UVa 489)
刽子手游戏是一款猜单词游戏。游戏规则如下:计算机想一个单词让你猜,你每次可以猜一个字母。如果单词里有那个字母,所有该字母会显示出来;如果没有那个字母,则计算机会在一副刽子手画上填一笔。这幅画一共需要7笔就能完成,因此你最多只能错6次。注意:猜一个已经猜过的字母也算错。在本题中,你的任务时编写一个裁判程序,输入单词和玩家的猜测,判断玩家赢了(You win)输了(You lose.)还是放弃了(You chickened out.)。每组数据包含3行,第1行是游戏编号(-1为输入结原创 2022-05-08 23:12:28 · 1497 阅读 · 0 评论 -
生成元(Digit Generator,ACM/ICPC Seoul 2005,Uva1583)
如果 x 加上 x 的各个数字之和得到的 y,就说 x 是 y 的生成元。给出 n (1 <= n <= 100000),求最小生成元。无解输出 0。例如,n = 216,121,2005 时的解分别为 198,0,1979。分析:因为生成元为m,所以m一定是小于n得,我们只需要枚举出所有m < n的数,再找出n的生成元就可以了。所以我们直接枚举出100000中所有的数,再标记m就行了。#include<stdio.h>#include<string.h&原创 2022-04-26 22:15:16 · 1049 阅读 · 2 评论 -
求解回文词(Palindromes,UVa401)
输入是一个字符串,判断它是否为回文串以及镜像串。输入字符串保证不含数字0 。所谓回文串,就是反转以后和原串相同,如 abba 和 madam 。所谓镜像串,就是左右镜像之后和原串相同,如 2S 和 3AIAE 。注意,并不是每个字符在镜像之后都能得到一个合法字符。在本题中,每个字符的镜像如下图所示:输入的每行包含一个字符串(保证只有上述字符,不含空白字符),判断它是否为回文串和镜像串(共4种组合)。每组数据之后输入一个空格。样例输入:NOTAPALINDROME ...原创 2022-04-24 22:03:18 · 89 阅读 · 0 评论 -
TeX中的引号
在Tex中,左双引号是" ` ` ",右双引号是“ ' '”.输入一篇包含双引号的文章,你的任务是把它转换成TeX的格式。样例输入:"To be or not to be,"quoth the Bard,"that is the question".样例输出: ` `To be or not to be' 'quoth the Bard,` `that is the question' '....原创 2022-04-23 21:38:03 · 826 阅读 · 0 评论 -
C/C++竖式问题
找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后应有一个空行。最后输出解的总数。具体格式见样例输出(为了便于观察,竖式中的空格改用小数点显示,但所写程序中应该输出空格,而非小数点)。样例输入:2357样例输出:<1>. . 7 7 5X . . 3 3_ _ _ _ _. 2 3 2 52 3 2 5 ._ _ _ _ _原创 2022-04-22 21:03:34 · 1698 阅读 · 0 评论 -
C/C++蛇形填数
再 n x n 方阵里填入1,2,···,n x n,要求填成蛇形。例如,n = 4 时方阵为:10 11 12 19 16 13 28 15 14 37 6 5 4上面方阵中,多余的空格只是为了便于观察规律,不必严格输出。n <= 8。分析:我们可以用二维数组来储存题目中的矩阵,我们一般在进行数组声明时都会设的比题目要求大一点,这里我们可以成"int a[50][50]"。我们数组升序是按蛇形升序,即从a[0][49]开始,到a[49][49]结束,再向左开始升序即...原创 2022-04-21 14:13:23 · 4088 阅读 · 0 评论 -
C/C++解子序列的和
输入两个正整数n<m<10^6,输出++ · · · +,保留5位小数。输入包含多组数据。结束标记位 n = m = 0。样例输入:2 565536 6553600 0样例输出:Case 1: 0.42361Case 2: 0.00001原创 2022-04-20 21:46:57 · 1396 阅读 · 0 评论 -
求阶乘之和
输入n,计算S = 1! + 2! + ··· + n!的末6位(不含前导0)。n <= 10^6,n!表示前n个正整数之积。样例输入:10样例输出:37913法一:#include<stdio.h>int main() { const int Y = 1000000; int sum = 0, n = 0; scanf("%d", &n); for (int i = 1; i <= n; i++) { int num = 1;原创 2022-04-19 19:04:39 · 1183 阅读 · 0 评论 -
关于形如aabb的完全平方数
输入所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字相等)第一种,先枚举所有的aabb数,在通过开平方判断是否为完全平方数#include<stdio.h>#include<math.h>int main(){ for(int a = 1;a <= 9;a++){ for(int b = 0;b <= 9;b++){ int n = a * 1100 + b * 11; // 枚举所有形如aabb原创 2022-04-18 21:31:41 · 1584 阅读 · 1 评论