- 博客(69)
- 收藏
- 关注
原创 算法设计与分析
欧几里得算法GCD(m,n)if n=0then return mreturn GCD(n,m mod n)代码如下#include<iostream>#include<cmath>using namespace std;int GCD(int m,int n){ if (n==0) return m; return GCD(n,m%n...
2019-06-25 08:44:10 381
原创 欧几里得(Euclid)算法
欧几里得算法是两千年来最著名的算法之一:已知两个非负整数m,n,且m>n>0,求这两个数的最大公因子。 欧几里得得出本算法基于这样一种观察,两个整数m和n的最大公因子等于n与m mod n的公因子。欧几里得算法如下: GCD(m,n)1 if n=02 then return m3 ...
2019-06-11 23:54:41 2543
原创 素数判定
/*#include<iostream> //此做法错误,原因1不是素数,但以下循环1变成素数 using namespace std;int is_prime(int n){ for(int i=2;i*i<=n;i++) //缩小循环范围 { if(n%i==0) return 0; //不是素数 } return 1...
2019-05-11 09:11:56 284
原创 01字串
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:0000000001000100001100100请按从小到大的顺序输出这32种01串。输入本试题没有输入。输出输出32行,按从小到大的顺序每行一个长度为5的01串。样例输出 Copy00000000010001000011<以下部分省略>#inclu...
2018-12-27 00:19:00 185
原创 统计单词个数
输入一个字符,统计单词个数,单词之间用空格分离#include<iostream>using namespace std;int main(){ char a[80],cl; int i,num=1; cout<<"输入文本:"<<endl; cin.getline(a,80); for(i=0;i<80;i++) { ...
2018-12-20 17:59:55 493
原创 问题 B: 小G的日常之开关灯
题目描述在小G面前有一排灯,有的灯是亮的有的灯是灭的,假如小G按了一个灯的开关,那么这个灯和它后面的都会变成相反的状态,既灭的亮,亮的灭.现在小G想把所有的灯打开,请问最少需要按多少个开关? 输入第一行输入一个数n(n<=1000),表示有n盏灯第二行输入n个数,表示n盏灯的当前状态,0表示灯灭,1表示灯亮 输出最少的操作数是多少。 样例输入5...
2018-11-26 18:26:31 249
原创 求三角形面积和
题目描述给出N个等腰直角三角形的斜边所对角的坐标,其斜边在坐标轴X上。求所有三角形的面积和(要求覆盖部分只求一次)。角的坐标为整数(X,Y>0)。输入第一行为整数N,接下来N行为三角形的顶点坐标,输出面积保留2位小数。样例输入37 34 411 5输出42.00解题思路 共3种情况1三角形完全覆盖2三角形部分覆盖3不覆盖...
2018-11-21 19:31:08 362
原创 与7无关的正整数的平方和
题目描述小L是一名有理想有抱负的大学生,但是某天他遇到了一个难题,描述如下:一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7的相关数求所有大于0且小于等于N的不属于7的相关数的平方和。希望你能帮他解决这个问题。 输入第一行包括一个数T(1<=T<=100000),表示接下来有T组数据,每行包括一个数N(1≤N≤1e6)。 ...
2018-11-15 19:50:52 2177 3
原创 青蛙的约会
两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,...
2018-11-15 15:25:25 129
原创 报名参赛
题目描述 zzuli的第二场周赛报名开始啦!但我们的小爱同学却陷入了苦恼,原来因为第一场周赛举办的太成功了。这次大家都要参加,但每次参加周赛的名额有限,所以举办方规定只有成功破解密钥的同学才能报名成功!这下可难住了小爱,不过我相信聪明的你肯定可以帮助他的,小爱同学能不能报名成功就看你啦! 输入 首先输入一个n,表示有n组测试数据,每组包含一个四位的非负整数n(可以有前导零,比...
2018-11-10 12:08:43 597
原创 小明学长给学弟的任务
题目描述 这几天,小明学长事情比较多,一边写文件,一边思考怎么为小石坝们出既有意思,又能检验大家学习情况的题目。忙的一塌糊涂的小明学长看见石榴学弟竟然来找他闲聊!闲聊!!!聊着聊着石榴学弟随口一句:“等我看见好的题目也加上去”,“行啊” , “。。。”(都知道做题消耗脑细胞,其实出题消耗更多脑细胞,发际线又得高了,宝宝心里苦,不想说话),,于是,石榴理所当然的认为学弟替学长分担任务是一种应该...
2018-11-08 11:23:12 564
原创 小明学长回学校
题目描述在未来的某一天,小明学长躺在他XXX平米的别墅里喝着龙井,突然一种莫名其妙的感觉涌上心头:一晃这么长的时间过去了,记得当时和队友在331有时因为想出一道题的好的解法能兴奋的喊出来,真想回去再打场比赛。于是小明学长就想约上那些老队友一起回去看看,但是又不想开车回去,因为他比较喜欢锻炼,所以想骑着山地车来次长途的旅行,顺便还能看看沿途的风景。现在学长准备year0-month0-day0早...
2018-11-07 18:51:28 368
原创 报时助手
题目描述给定当前的时间,请用英文的读法将它读出来。时间用时h和分m表示,在英文的读法中,读一个时间的方法是:如果m为0,则将时读出来,然后加上“o'clock”,如3:00读作“three o'clock”。如果m不为0,则将时读出来,然后将分读出来,如5:30读作“five thirty”。时和分的读法使用的是英文数字的读法,其中0~20读作:0:zero, 1: one,...
2018-11-06 16:09:06 172
原创 小新同学铺地砖
题目描述小新同学不但爱搬砖,也爱铺砖,在学校没课的时候经常去兼职帮别人铺地砖,这天小新要铺的房间大小是M*N,用的地砖的大小是X*Y,问小新在铺砖时,地上最少需要铺出多少块,砖块可以切割,为了整齐,在铺砖时,砖块方向要一致。不允许出现交错的情况。 输入多实例测试,每个实例输入占一行,由4个整数组成,分别为M、N、X、Y(0<X,Y<M,N<1000),用空格隔开。...
2018-11-06 12:24:15 568
原创 组合求解问题
方法1解题思路: 1:组合求解如求C(8,5);等于8!/(3!*5!)=(8*7*6)/(1*2*3);2:将m=(n-m)>m?(n-m):m;3:(m+1)到n的累乘除以1到(n-m)的累乘 。 #include<iostream>using namespace std;long long C(int n,int m){ long long t=1;...
2018-10-26 10:11:29 595
原创 开灯问题
有n盏灯,编号为1~n。第一个人把所有灯打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第三个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关掉),以此类推。一共有k个人,问最后有那些灯开着?输入:n和k,输出开着灯的编号。k<=n<=1000。 样例输入:7 3 样例输出:1 5 6 7 memset(a,...
2018-10-25 00:05:08 203
原创 排列。
题目要求:用1,2,3,...,9组成3个三位数abc,def,ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。按照“abc def ghi”的格式输出所有解。思路:1:用一个循环,三位数中最小的一个是i=123,从i依次递增至333。(因为333*3=999);2:定义一个数组S[10],将其全部赋初值0;3:将i 的百位十位和个位分离,使S[百位]=1,...
2018-10-24 12:54:05 352
原创 求最大公约数与求最小公倍数问题
求最大公约数可以使用辗转相除法:假设a > b > 0,那么a和b的最大公约数等于b和a%b的最大公约数,然后把b和a%b作为新一轮的输入。由于这个过程会一直递减,直到a%b等于0的时候,b的值就是所要求的最大公约数。比如:9和6的最大公约数等于6和9%6=3的最大公约数。由于6%3==0,所以最大公约数为3。求最小公倍数用a*b等于l,l 除以a b的最大公约数就...
2018-10-20 09:39:47 274
原创 :矩阵转置
总时间限制:1000ms内存限制:65536kB描述输入一个n行m列的矩阵A,输出它的转置AT。输入第一行包含两个整数n和m,表示矩阵A的行数和列数。1 <= n <= 100,1 <= m <= 100。接下来n行,每行m个整数,表示矩阵A的元素。相邻两个整数之间用单个空格隔开,每个元素均在1~1000之间。输出m行,每行n个整数,为...
2018-10-12 00:34:08 1517
原创 图像模糊处理
总时间限制:1000ms内存限制:65536kB描述给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:1. 四周最外侧的像素点灰度值不变;2. 中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。输入第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1 <= n <= 100,1 ...
2018-10-12 00:19:51 385
原创 :计算鞍点
总时间限制: 1000ms 内存限制: 65536kB描述给定一个5*5的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。11 3 5 6 912 4 7 8 1010 5 6 9 118 6 4 7 2...
2018-10-11 22:41:50 427
原创 校门外的树
描述某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的...
2018-10-11 12:25:48 212
原创 年龄与疾病
描述某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理,按照0-18、19-35、36-60、61以上(含61)四个年龄段统计的患病人数占总患病人数的比例。输入共2行,第一行为过往病人的数目n(0 < n <= 100),第二行为每个病人患病时的年龄。输出按照0-18、19-35、36-60、61以上(含61)四个年龄段输出该段患病人数占...
2018-10-11 10:06:37 310
原创 火车票退票费计算
题目描述2013年起,火车票退票费比例下调:票面乘车站开车时间前48小时以上的按票价5%计退票费。同时,车票退票费的计算方法不再四舍五入到元为单位,而是以5角为单位:尾数小于0.25元的舍去、不小于0.25元且小于0.75元的计为0.5元、不小于0.75元的进为1元。编写一个函数,计算退票费,假定退票时间举例开车时间在48小时以上。函数原型如下:double CancelFee(doubl...
2018-10-07 22:25:48 474
原创 提水问题
为了欢迎大家的到来,让大家安心的比赛,志愿者们纷纷开始行动起来,机房的卫生毫无疑问还是要打扫一遍的。 机房里面有一个水缸和一个水桶,他们的容积分别是V1和V2,现在有一个很简单的问题需要你来回答一下。求最少需要多少次能把水缸灌满水,且在最少次数的情况下,求出最后一桶水的最小体积。 输入第一行一个整数T表示数据组数(T <= 100)对于每组样例只有一行包含两个正整数V1, V...
2018-10-07 19:23:14 842
原创 角谷猜想
描述所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。程序要求输入一个整数,将经过处理得到1的过程输出来。输入一个正整数N(N <= 2,000,000)输出从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出...
2018-10-03 23:00:55 290
原创 求x的n次方
using namespace std;double power(double x,int n){ double val=1.0; while(n--) //非0为真,0为假,所以当n=0时结束。 val*=x; return val;}int main(){ double x; int n; cin>>x>>n; cou...
2018-09-29 14:04:16 777 1
原创 换硬币问题
编写程序实现用一元人民币换成一分,两分,五分的硬币共50枚。三重循环#include<stdio.h>int main() { int x,y,z; //x y z 分别表示一分 两分 五分的个数。 for(x=0;x<=36;x++) for(y=0;y<=50;y++) for(z=0;z<=12;z...
2018-09-25 14:32:18 2833 2
转载 逆序输出一组数据
如输入 1 2 3 65 4输出 4 65 3 2 1要求 每个数之间空一格 最后一个数后面不空格。 #include<stdio.h>#define maxn 105int a[maxn];int main(){ int x,n=0; while(scanf("%d",&x)==1) a[n++]=x; for(int i=n-1;...
2018-09-24 15:38:11 1721
原创 奇怪的排序。
题目描述最近,Dr. Kong 新设计一个机器人Bill。这台机器人很聪明,会做许多事情。惟独对自然数的理解与人类不一样,它是从右往左读数。比如,它看到123时,会理解成321。让它比较23与15哪一个大,它说15大。原因是它的大脑会以为是32与51在进行比较。再比如让它比较29与30,它说29大。给定Bill两个自然数A和B,让它将 [A,B] 区间中的所有数按从小到大排序出来。你会认为...
2018-09-23 21:29:11 298
原创 求解f(n)数列的第n项的值。
求解的表达式f(n)数列1 1 2 3 5 8 13 21..........的第n项的值 n=(1,2,3,4,..........) #include<iostream>using namespace std;int Recursion(int n){ int t; if(n==1||n==2) t=1; else t=Rec...
2018-09-23 00:31:27 372
原创 求n是不是素数。
输入一个数n,判断n是不是素数。#include<iostream>using namespace std;int main(){ int n; //判断n是不是素数,n>0。 cin>>n; cout<<endl; int i=2; int k; if(n==1) k=0; else ...
2018-09-21 18:55:04 253
原创 插入一个数。
/*在长度为n的数组的第k(1<=k<=n)个元素前插入一个数 m.使数组长度变为n+1,输出新数组*/#include<iostream>using namespace std;int main(){ int n,k,m,i; cin>>n>>k>>m; int a[10000]; for(i=0;i<...
2018-09-18 17:53:51 266
原创 输入一个数n,将其反转输出。
要求输出时不含前导0如输入365,输出563. 输入520,输出25.#include<iostream>using namespace std;int main(){ int n; cin>>n; int t; while(n>0) { if(n%10==0) //舍去末尾0。 n/=10; else...
2018-09-17 12:03:08 2363
原创 求n!的末尾0的个数。
/*求阶乘的末尾的0的个数。5!的末尾1个010!的末尾2个015!的末尾3个020!的末尾4个0而25!的末尾6个0 . . . .知求n!的末尾的0的个数应为n/5+n/(5^2)+n/(n^3)+......直到n/(5^i)=0为止。(i=1,2,3,....)。如求523!的末尾0的个数523/5=104523/25=20523/1...
2018-09-16 11:20:30 359
原创 阶乘之和
输入n,计算s=1!+2!+3!+.........+n!的末6位(不含前导0)。n<=10^6,n!表示前n个正整数之积。include<iostream>using namespace std;int main(){ int mod=1000000; int n,s=0,t=1; //t为阶乘i的值。 cin>>n;...
2018-09-16 10:33:21 207
原创 玫瑰花数 一个四位数等于各位数字的四次方之和,则为玫瑰花数。如:1634=1*1*1*1+6*6*6*6+3*3*3*3+4*4*4*4
#include<stdio.h>#include<math.h>int main(){ int n=1000; int a,b,c,d; int s; while(n<10000) { a=n%10; b=n/10%10; c=n/100%10; d=n/1000; if(a*a*a*a+b*b*b*b+c*c*c...
2018-08-08 21:33:43 12260
原创 输入x,计算sin(x)的前10项和。
#include<stdio.h>#include<math.h>float Sin(float x){ int n; //项数n。 n=10; float sum=0; //前n项和sum。 float t; int i; t=x; sum=t; for(i=2;i<...
2018-07-10 22:13:45 3326
原创 有一口深度为high米的水井,井底有一只青蛙,它每天白天能够沿井壁向上爬up米,夜里则顺井壁向下滑down米,若青蛙从某个早晨开始向外爬,对于任意指定的high、up和down值(均为自然数),计算青
#include<stdio.h> /*循环模拟。注意,不能简单地认为每天上升的高度等于白天向上爬的距离减去夜间下滑的距离,因为若 白天能爬出井口,则不必等到晚上。*/#include<math.h>int main(){ int high,up,down; scanf("%d%d%d"...
2018-06-27 11:35:09 6044
原创 在一个·数组中求最大一个数所在的位置。
#include<stdio.h> //程序有缺陷,当数组中有两个数相同且最大时,以前面一个为准。 int main(){ int a[1000]; int n; scanf("%d",&n); int i,j,b,t,c; for(i=0;i<n;i++) scanf("%d",&a[i]); ...
2018-06-20 17:57:53 1393 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人