
算法训练
coding__girl
这个作者很懒,什么都没留下…
展开
-
算法训练 连续正整数的和
问题描述 78这个数可以表示为连续正整数的和,1+2+3,18+19+20+21,25+26+27。 输入一个正整数 n(<=10000) 输出 m 行(n有m种表示法),每行是两个正整数a,b,表示a+(a+1)+…+b=n。 对于多种表示法,a小的方案先输出。 样例输入 78 样例输出 1 12 18 21 25 27#include <iostream>u原创 2017-07-30 11:42:20 · 529 阅读 · 0 评论 -
算法训练 字符删除
问题描述 编写一个程序,先输入一个字符串str(长度不超过20),再输入单独的一个字符ch,然后程序会把字符串str当中出现的所有的ch字符都删掉,从而得到一个新的字符串str2,然后把这个字符串打印出来。 输入格式:输入有两行,第一行是一个字符串(内部没有空格),第二行是一个字符。 输出格式:经过处理以后的字符串。 输入输出样例 样例输入 123-45-678 -原创 2017-08-12 10:56:43 · 402 阅读 · 0 评论 -
算法训练 矩阵乘方
问题描述 给定一个矩阵A,一个非负整数b和一个正整数m,求A的b次方除m的余数。 其中一个nxn的矩阵除m的余数得到的仍是一个nxn的矩阵,这个矩阵的每一个元素是原矩阵对应位置上的数除m的余数。 要计算这个问题,可以将A连乘b次,每次都对m求余,但这种方法特别慢,当b较大时无法使用。下面给出一种较快的算法(用A^b表示A的b次方): 若b=0,则A^b%m=I%m。其中I表示原创 2017-08-19 11:17:04 · 418 阅读 · 0 评论 -
算法训练 阶乘
问题描述 一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了,它已经无法存放在一个浮点型变量中。因此,当n比较大时,去计算n!是非常困难的。幸运的是,在本题中,我们的任务不是去计算n!,而是去计算n!最右边的那个非0的数字是多少。例如,5! = 1*2*3*4*5 = 120,因此5!最原创 2017-08-12 12:39:41 · 1172 阅读 · 0 评论 -
算法训练 输出米字形
根据输入的正整数n (1 米字形由一个(2n-1)*(2n-1)的矩阵组成,矩阵包含从大写A开始的n个字母 例如:n=3时,包含A,B,C;n=4时,包含A,B,C,D。 矩阵的正中间为n个字母中字典序最大的那个,从这个字母开始,沿着西北、正北、东北、正西、正东、西南、正南、东南八个方向各有一条由大写字母组成的直线。并且直线上的字母按字典序依次减小,直到大写字母A。 矩阵的其它位原创 2017-08-13 11:51:26 · 718 阅读 · 0 评论 -
算法训练 猴子分苹果
问题描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分。这些猴子很崇拜猴王孙悟空,所以都想给他留一些苹果。第一只猴子悄悄来到山洞,把苹果平均分成n份,把剩下的m个苹果吃了,然后藏起来一份,最后把剩下的苹果重新合在一起。这些猴子依次悄悄来到山洞,都做同样的操作,恰好每次都剩下了m个苹果。第二天,这些猴子来到山洞,把剩下的苹果分成n分,巧了,还是剩下了m个。问,原来这些猴子至少采了原创 2017-07-29 11:16:51 · 371 阅读 · 0 评论 -
算法训练 寂寞的数
问题描述 道德经曰:一生二,二生三,三生万物。 对于任意正整数n,我们定义d(n)的值为为n加上组成n的各个数字的和。例如,d(23)=23+2+3=28, d(1481)=1481+1+4+8+1=1495。 因此,给定了任意一个n作为起点,你可以构造如下一个递增序列:n,d(n),d(d(n)),d(d(d(n)))….例如,从33开始的递增序列为: 33, 39, 51原创 2017-07-29 11:59:48 · 337 阅读 · 0 评论 -
算法训练 筛选号码
问题描述 有n个人围成一圈,顺序排号(编号为1到n)。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子。从下一个人开始继续报数,直到剩下最后一个人,游戏结束。 问最后留下的是原来第几号的那位。 举个例子,8个人围成一圈: 1 2 3 4 5 6 7 8 第1次报数之后,3退出,剩下: 1 2 4 5 6 7 8 (现在从4开始报数) 第2次报数之后,原创 2017-08-14 11:37:03 · 556 阅读 · 0 评论 -
算法训练 字符串逆序
输入一个字符串,长度在100以内,按相反次序输出其中的所有字符。 样例输入 tsinghua 样例输出 auhgnist简单题,不知道有没有倒序输出的函数#include <iostream>#include<string>using namespace std;int main(){ string s; int i,l; cin>>s; l=s.l原创 2017-08-14 11:56:53 · 287 阅读 · 0 评论 -
算法训练 快速排序
问题描述 快速排序是最经常使用的一种排序方式,对于给定的n个数组成的一个数组,请使用快速排序对其进行排序。 现给定一序列,请用快速排序将其按升序排序并输出。 输入格式 第一行一个数N。 第2~N+1行每行一个数,表示给定序列。 输出格式 共N行,每行一个数,表示所求序列。 样例输入 5 1 4 2 3 4 样例输出 1 2 3 4 4 数原创 2017-08-21 18:44:26 · 837 阅读 · 1 评论 -
算法训练 简单加法(基本型)
问题描述 首先给出简单加法算式的定义: 如果有一个算式(i)+(i+1)+(i+2),(i>=0),在计算的过程中,没有任何一个数位出现了进位,则称其为简单的加法算式。 例如:i=3时,3+4+5=12,有一个进位,因此3+4+5不是一个简单的加法算式;又如i=112时,112+113+114=339,没有在任意数位上产生进位,故112+113+114是一个简单的加法算式。 问题原创 2017-08-21 19:08:30 · 415 阅读 · 0 评论 -
算法训练 数组查找及替换
问题描述 给定某整数数组和某一整数b。要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序。如果数组元素数值在A到Z的ASCII之间,替换为对应字母。元素个数不超过100,b在1至100之间。 输入格式 第一行为数组元素个数和整数b 第二行为数组各个元素 输出格式 按照要求输出 样例输入 7 2 77 11 66 22 44 33 55样例输出11原创 2017-08-23 12:13:28 · 723 阅读 · 0 评论 -
算法训练 安慰奶牛
问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路。道路被用来连接N个牧场,牧场被连续地编号为1到N。每一个牧场都是一个奶牛的家。FJ计划除去P条道路中尽可能多的道路,但是还要保持牧场之间 的连通性。你首先要决定那些道路是需要保留的N-1条道路。第j条双向道路连接了牧场Sj和Ej(1 输入格式 第1行包含两个整数N和P。接下来N行,每行包含一个整数Ci。原创 2018-01-16 14:23:43 · 217 阅读 · 0 评论 -
算法训练 最短路
问题描述 给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环)。请你计算从1号点到其他点的最短路(顶点从1到n编号)。输入格式 第一行两个整数n, m。接下来的m行,每行有三个整数u, v, l,表示u到v有一条长度为l的边。输出格式 共n-1行,第i行表示1号点到i+1号点的最短路。 样例输入 3 3 1 2 -1 2 3 -1 3 1 2 样例原创 2018-01-18 09:39:04 · 597 阅读 · 1 评论 -
算法训练 s01串
问题描述 s01串初始为”0” 按以下方式变换 0变1,1变01 输入格式 1个整数(0~19) 输出格式 n次变换后s01串 样例输入 3 样例输出 101 数据规模和约定 0~19思路: 循环n次,将‘0’变为‘1’,将‘1’前加一个‘0’#include <iostream>#include<string>using namespace原创 2017-07-27 10:40:15 · 280 阅读 · 0 评论 -
算法训练 反置数
问题描述 一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数。如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了。比如说,1245的反置数是5421,而1200的反置数是21。请编写一个程序,输入两个整数,然后计算这两个整数的反置数之和sum,然后再把sum的反置数打印出来。要求:由于在本题中需要多次去计算一个整数的反置数,因此必须把这部分代码抽原创 2017-08-11 11:47:59 · 331 阅读 · 0 评论 -
算法训练 友好数
问题描述 有两个整数,如果每个整数的约数和(除了它本身以外)等于对方,我们就称这对数是友好的。例如: 9的约数和有:1+3=4 4的约数和有:1+2=3 所以9和4不是友好的。 220的约数和有:1 2 4 5 10 11 20 22 44 55 110=284 284的约数和有:1 2 4 71 142=220 所以220和284是友好的。 编写程序原创 2017-07-30 11:56:10 · 283 阅读 · 0 评论 -
算法训练 暗恋
问题描述 同在一个高中,他却不敢去找她,虽然在别人看来,那是再简单不过的事。暗恋,是他唯一能做的事。他只能在每天课间操的时候,望望她的位置,看看她倾心的动作,就够了。操场上的彩砖啊,你们的位置,就是他们能够站立的地方,他俩的关系就像砖与砖之间一样固定,无法动摇。还记得当初铺砖的工人,将整个操场按正方形铺砖(整个操场可视为R行C列的矩阵,矩阵的每个元素为一块正方形砖块),正方形砖块有两种,一种为原创 2017-08-07 17:44:57 · 343 阅读 · 0 评论 -
算法训练 数的统计
问题描述 在一个有限的正整数序列中,有些数会多次重复出现在这个序列中。 如序列:3,1,2,1,5,1,2。其中1就出现3次,2出现2次,3出现1 次,5出现1次。 你的任务是对于给定的正整数序列,从小到大依次输出序列中出现的数及出现的次数。 输入格式 第一行正整数n,表示给定序列中正整数的个数。 第二行是n 个用空格隔开的正整数x,代表给定的序列。 输出格式原创 2017-08-07 11:29:59 · 316 阅读 · 0 评论 -
算法训练 明明的随机数
问题描述 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。 输入格式 输入有2行,第1行为1个正整数,表示所生成的随机数的个数原创 2017-08-07 18:05:18 · 192 阅读 · 0 评论 -
算法训练 黑色星期五
问题描述 有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形,以帮助你的迷信朋友解决难题。 说明:(1)一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;(2)已知1998年1月原创 2017-08-08 19:15:06 · 591 阅读 · 0 评论 -
算法训练 乘法表
问题描述 输出九九乘法表。 输出格式 输出格式见下面的样例。乘号用“*”表示。 样例输出 下面给出输出的前几行: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 ……#include <iostream>using namespace std;int main(){ int i,k原创 2017-08-16 10:48:01 · 333 阅读 · 0 评论 -
算法训练 阿尔法乘积
问题描述 计算一个整数的阿尔法乘积。对于一个整数x来说,它的阿尔法乘积是这样来计算的:如果x是一个个位数,那么它的阿尔法乘积就是它本身;否则的话,x的阿尔法乘积就等于它的各位非0的数字相乘所得到的那个整数的阿尔法乘积。例如:4018224312的阿尔法乘积等于8,它是按照以下的步骤来计算的: 4018224312 → 4*1*8*2*2*4*3*1*2 → 3072 → 3*7*2 →原创 2017-08-09 10:59:43 · 953 阅读 · 0 评论 -
算法训练 新生舞会
问题描述 新生舞会开始了。n名新生每人有三个属性:姓名、学号、性别。其中,姓名用长度不超过20的仅由大小写字母构成的字符串表示,学号用长度不超过10的仅由数字构成的字符串表示,性别用一个大写字符‘F’或‘M’表示。任意两人的姓名、学号均互不相同。换言之,每个人可被其姓名或学号唯一确定。给出m对两人的信息(姓名或学号),判断他们是否能共舞。两人能共舞的充要条件为两人性别相异。输入 第一行一原创 2017-08-09 16:29:10 · 600 阅读 · 0 评论 -
算法训练 8-2求完数
问题描述 如果一个自然数的所有小于自身的因子之和等于该数,则称为完数。设计算法,打印1-9999之间的所有完数。 数据规模和约定 1-9999#include <iostream>using namespace std;int main(){ int i,k,sum; for(i=1;i<=9999;i++) { sum=0;原创 2017-07-26 09:26:57 · 456 阅读 · 0 评论 -
算法训练 6-2递归求二进制表示位数
问题描述 给定一个十进制整数,返回其对应的二进制数的位数。例如,输入十进制数9,其对应的二进制数是1001,因此位数是4。 样例输入 一个满足题目要求的输入范例。 9 样例输出 与上面的样例输入对应的输出。数据规模和约定 输入数据中每一个数的范围。 例:输入在int表示范围内。#include <iostream>using namespace std;int ma原创 2017-07-26 09:52:16 · 395 阅读 · 0 评论 -
算法训练 5-2求指数
问题描述 已知n和m,打印n^1,n^2,…,n^m。要求用静态变量实现。n^m表示n的m次方。已知n和m,打印n^1,n^2,…,n^m。要求用静态变量实现。n^m表示n的m次方。(每行显示5个数,每个数宽为12,右对齐) 样例输入 一个满足题目要求的输入范例。 例: 3 8 样例输出 与上面的样例输入对应的输出。 例:数据规模和约定 输入数据中每一个数的范围。 例原创 2017-07-26 10:08:25 · 592 阅读 · 0 评论 -
算法训练 4-1打印下述图形
#include <iostream>using namespace std;int main(){ int n,i,k,j; cin>>n; for(i=0;i<n;i++) { for(k=0;k<n-i-1;k++) cout<<" "; for(j=0;j<2*i+1;j++)原创 2017-07-26 10:23:08 · 283 阅读 · 0 评论 -
算法训练 字符串变换
问题描述 相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了。今天,徐老师想测试一下大家对于字符串操作的掌握情况。徐老师自己定义了1,2,3,4,5这5个参数分别指代不同的5种字符串操作,你需要根据传入的参数,按照徐老师的规定,对输入字符串进行格式转化。 徐老师指定的操作如下: 1 表示全部转化为大写字母输出,如abC 变成 ABC 2 表示全部转换为小写字原创 2017-07-26 11:03:46 · 349 阅读 · 0 评论 -
uva 11408 Count DePrimes 求素数变式
A number is called a DePrime if the sum of its prime factors is a prime number. Given a and b count the number of DePrimes xi such that a ≤ xi ≤ b. Input Each line contains a and b in the format ‘a...原创 2018-06-06 09:30:17 · 353 阅读 · 0 评论