- 博客(43)
- 收藏
- 关注
原创 四平方和
四平方和四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和。如果把0包括进去,就正好可以表示为4个数的平方和。比如:5 = 0^2 + 0^2 + 1^2 + 2^27 = 1^2 + 1^2 + 1^2 + 2^2(^符号表示乘方的意思)对于一个给定的正整数,可能存在多种平方和的表示法。要求你对4个数排序:0 <= a <= b <= c <=...
2018-03-29 22:29:54
526
原创 凑算式
凑算式 B DEFA + --- + ------- = 10 C GHI (如果显示有问题,可以参见【图1.jpg】) 这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性...
2018-03-28 22:35:21
338
原创 生日蜡烛
生日蜡烛某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。#include<stdio.h>int main(){ int i=26,s=236; int k=i;...
2018-03-28 22:09:36
337
原创 煤球数目
煤球数目有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。答案:171700#include<stdio.h>int main(){ int i,s=0,t; ...
2018-03-28 21:37:38
317
原创 最大公共字串
标题:最大公共子串a[i-1][j-1]+1最大公共子串长度问题就是:求两个串的所有子串中能够匹配上的最大长度是多少。比如:"abcdkkk" 和 "baabcdadabc",可以找到的最长的公共子串是"abcd",所以最大公共子串长度为4。下面的程序是采用矩阵法进行求解的,这对串的规模不大的情况还是比较有效的解法。请分析该解法的思路,并补全划线部分缺失的代码。#include <stdio...
2018-03-15 16:24:25
246
原创 取数位
标题:取数位f(x/10,k)求1个整数的第k位数字有很多种方法。以下的方法就是一种。// 求x用10进制表示时的数位长度 int len(int x){ if(x<10) return 1; return len(x/10)+1;} // 取x的第k位数字int f(int x, int k){ if(len(x)-k==0) return x%10; return ___________...
2018-03-15 15:54:13
330
原创 谁考了第K名
01:谁考了第k名查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩。输入第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n)。其后有n行数据,每行包括一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。输出输出第k名学生的学号和成绩,中间...
2018-03-08 16:58:44
1739
原创 九数组分数
九数组分数1,2,3...9 这九个数字组成一个分数,其值恰好为1/3,如何组法?下面的程序实现了该功能,请填写划线部分缺失的代码。#include <stdio.h>void test(int x[]){ int a = x[0]*1000 + x[1]*100 + x[2]*10 + x[3]; int b = x[4]*10000 + x[5]*1000 + x[6]*100 +...
2018-02-23 16:59:16
393
原创 格子中输出
格子中输出StringInGrid函数会在一个指定大小的格子中打印指定的字符串。要求字符串在水平、垂直两个方向上都居中。如果字符串太长,就截断。如果不能恰好居中,可以稍稍偏左或者偏上一点。下面的程序实现这个逻辑,请填写划线部分缺少的代码。#include <stdio.h>#include <string.h>void StringInGrid(int width, int...
2018-02-23 16:06:11
566
原创 三羊献瑞
三羊献瑞观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞------------------- 三 羊 生 瑞 气(如果有对齐问题,可以参看【图1.jpg】)其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。#include <stdio.h>int judge(int a,i...
2018-02-23 15:35:55
250
原创 素数筛
void isp() { int p[100010],su[100010]; int len=0; memset(p,0,sizeof(p)); p[0]=1;p[1]=1;p[2]=0; for(int i=0;i<10000;i++) { if(p[i]) continue; ...
2018-02-12 10:33:47
263
原创 装箱问题
1014 装箱问题 2001年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold题解 查看运行结果题目描述 Description有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。输入描述 Input Descript...
2018-02-10 15:11:12
315
原创 线段覆盖
1214 线段覆盖 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold题解 查看运行结果题目描述 Description 给定x轴上的N(0<N<100)条线段,每个线段由它的二个端点a_I和b_I确定,I=1,2,……N.这些坐标都是区间(-999,999)的整数。有些线段之间会相互交叠或覆盖。请你编写一个程序,从给出的线段中去掉尽量少的线段,使得...
2018-02-10 13:27:43
495
原创 均分纸牌
1098 均分纸牌 2002年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold题解题目描述 Description有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸牌,然后移动。 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,...
2018-02-10 12:08:16
315
原创 二叉树的遍历
3143 二叉树的序遍历 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 白银 Silver题解 查看运行结果题目描述 Description求一棵二叉树的前序遍历,中序遍历和后序遍历输入描述 Input Description第一行一个整数n,表示这棵树的节点个数。接下来n行每行2个整数L和R。第i行的两个整数Li和Ri代表编号为i的节点的左儿子编号和右儿子编号。输出描述 Out...
2018-02-09 15:42:40
270
原创 二叉树最大宽度和高度
1501 二叉树最大宽度和高度 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver题解 查看运行结果题目描述 Description 给出一个二叉树,输出它的最大宽度和高度。输入描述 Input Description第一行一个整数n。下面n行每行有两个数,对于第i行的两个数,代表编号为i的节点所连接的两个左右儿子的编号。如果没有某个儿子为空,则为0。输出描...
2018-02-09 15:01:53
500
原创 汉诺塔游戏
3145 汉诺塔游戏 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 白银 Silver题解题目描述 Description汉诺塔问题(又称为河内塔问题),是一个大家熟知的问题。在A,B,C三根柱子上,有n个不同大小的圆盘(假设半径分别为1-n吧),一开始他们都叠在我A上(如图所示),你的目标是在最少的合法移动步数内将所有盘子从A塔移动到C塔。游戏中的每一步规则如下:1. 每一步只...
2018-02-09 13:50:42
486
原创 3n+1问题
3038 3n+1问题 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 白银 Silver题解 查看运行结果题目描述 Description3n+1问题是一个简单有趣而又没有解决的数学问题。这个问题是由L. Collatz在1937年提出的。克拉兹问题(Collatz problem)也被叫做hailstone问题、3n+1问题、Hasse算法问题、Kakutani算法问题、Thw...
2018-02-08 15:23:34
828
原创 1.3编程基础之算术表达式与顺序执行
01:A+B问题查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述在大部分的在线题库中,都会将A+B问题作为第一题,以帮助新手熟悉平台的使用方法。A+B问题的题目描述如下:给定两个整数A和B,输出A+B的值。保证A、B及结果均在整型范围内。现在请你解决这一问题。输入一行,包含两个整数A,B,中间用单个空格隔开。A和B均在整型范围内。输出一个整数,即A+B的值。保证结果在整型...
2018-02-08 11:30:03
1797
原创 2.1基本算法之枚举
1749:数字方格查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述如上图,有3个方格,每个方格里面都有一个整数a1,a2,a3。已知0 <= a1, a2, a3 <= n,而且a1 + a2是2的倍数,a2 + a3是3的倍数, a1 + a2 + a3是5的倍数。你的任务是找到一组a1,a2,a3,使得a1 + a2 + a3最大。输入一行,包含一个整数n...
2018-02-08 11:29:41
1923
原创 斐波那契数列3
1978 Fibonacci数列 3 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 青铜 Bronze题解 查看运行结果题目描述 Description斐波纳契数列是这样的数列:f1 = 1f2 = 1f3 = 2f4
2018-02-07 12:17:53
483
原创 数的计算
1011 数的计算 2001年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver题解 查看运行结果题目描述 Description我们要求找出具有下列性质数的个数(包含输入的自然数n):
2018-02-07 11:51:42
428
原创 1.2编程基础之变量定义、赋值及转换
01:整型数据类型存储空间大小查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述分别定义int,short类型的变量各一个,并依次输出它们的存储空间大小(单位:字节)。输入无。输出一行,两个整数,分别是两个变量的存储空间大小,用一个空格隔开。样例输入(无)样例输出(不提供
2018-02-06 14:29:29
2838
原创 1.1编程基础之输入输出
01:Hello, World!查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB描述对于大部分编程语言来说,编写一个能够输出“Hello, World!”的程序往往是最基本、最简单的。因此,这个程序常常作为一个初学者接触一门新的编程语言所写的第一个程序,也经常用来测试开发、编译环境是否能够正常工作。
2018-02-06 13:47:10
1170
原创 m进制转十进制
#include #includeusing namespace std; int main(){ string s; cin>>s; int n,m=1,t=0; cin>>n; for(int i=s.length()-1;i>=0;i--) { if(s[i]<='9') t+=(s[i]-'0')*m; else t+=(s[i]-'A'+10)*m;
2018-02-05 19:14:07
270
原创 十进制转m进制
#include #includeusing namespace std; int main(){ stack s; int n,m,x; cin>>n>>m; while(n) { x=n%m; s.push(x); n/=m; } while(!s.empty()) { if(s.top()>=10) { switch(s.top()) {
2018-02-05 18:45:50
294
原创 素数判定
#include #includeusing namespace std; int main(){ int n,flag=1; cin>>n; for(int i=2;i<=n/2;i++) if(n%i==0) { flag=0; } if(flag==1) cout<<"\\t"; else cout<<"\\n"; return 0;
2018-02-05 18:12:12
204
原创 最大公约数
#include using namespace std; int main() { int a,b,t; cin>>a>>b; while(b!=0) { t=a%b; a=b; b=t; } cout<<a; return 0;}留着,以后用到了忘记了再回来翻看。
2018-02-05 17:03:35
196
原创 最大公约数和最小公倍数问题
题目如下:题目描述 Description输入二个正整数x0,y0(2输入描述 Input Description二个正整数x0,y0输出描述 Output Description满足条件的所有可能的两个正整数的个数样例输入 Sample Input3 60样例输出 Sample Output4#includeint asd1(int x,int
2018-02-04 21:00:27
340
原创 Cantor表
题目描述 Description现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … 3/1 3/2 3/3 … 4/1 4/2 … 5/1 … … 我们以Z字形给上表的每一项编号。第一项是1/1,然后是1/2,2/1,3/1,2/2,…
2018-02-03 17:15:46
554
原创 ASCII码排序
ASCII码排序时间限制:3000 ms | 内存限制:65535 KB难度:2描述输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。输入第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。输出对于每组输入数据,输出一行,字符中间用一个空格分开。样例
2018-01-31 16:01:37
414
原创 多边形重心问题
多边形重心问题时间限制:3000 ms | 内存限制:65535 KB难度:5描述在某个多边形上,取n个点,这n个点顺序给出,按照给出顺序将相邻的点用直线连接, (第一个和最后一个连接),所有线段不和其他线段相交,但是可以重合,可得到一个多边形或一条线段或一个多边形和一个线段的连接后的图形; 如果是一条线段,我们定义面积为0,重心坐标为(0,0).现在求给出
2018-01-30 19:20:26
416
原创 括号配对问题
#include#include using namespace std;bool judge(string s){ stack S; for(int i=0;i<s.length();i++) { if(s[i]=='('||s[i]=='[')//第一个 S.push(s[i]); else if(s[i]==')'&&!S.empty()&&S.top()==
2018-01-29 23:20:38
252
原创 特殊的数字
#include int main() { for(int a=1;a<=9;a++) for(int b=0;b<=9;b++) for(int c=0;c<=9;c++) { int n=a*100+b*10+c; int s=a*a*a+b*b*b+c*c*c; if(n==s) pri
2018-01-25 17:39:43
265
原创 回文数
#include int main(){ for(int a=1;a<=9;a++) for(int b=0;b<=9;b++) for(int c=0;c<=9;c++) for(int d=0;d<=9;d++) { if(a==d) if(b==c) printf("%d%d%d%d\n",a,b,c,d); } return 0;}这个题跟特殊回文数
2018-01-25 17:32:31
301
原创 特殊回文数
#include int main(){ int n; scanf("%d",&n); for(int a=1;a<=9;a++) for(int b=0;b<=9;b++) for(int c=0;c<=9;c++) for(int d=0;d<=9;d++) for(int e=0;e<=9;e++)
2018-01-25 17:13:50
215
原创 十进制转换为十六进制
#include#include #includeusing namespace std;int main(){ stack S; int N; scanf("%d",&N); if(N>=0&&N<=2147483647) { while(N) { S.push(N%16); N=N/16; } while(!S.empty()) { printf("
2018-01-25 15:49:25
390
原创 十六进制转换为十进制
#include#include#include using namespace std;int main(){ char s[9]; int t=0,n=1; cin>>s; for(int i=strlen(s)-1;i>=0;i--) { if(s[i]<='9') t+=(s[i]-'0')*n; else t+=(s[i]-'A'+10)*n;
2018-01-24 18:12:23
2537
原创 十六进制转换成八进制
#include #includeusing namespace std;int main(){ int n; cin>>n; string s1,s2; string *s3= new string[n]; int i,j,k; for(i=0;i<n;i++) { s1=""; s2=""; s3[i]=""; cin>>s1; for(j=0;j<s
2018-01-23 17:18:54
585
原创 数列排序
#include #includeusing namespace std;int main() { int i,n,a[200]; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); sort(a,a+n); for(i=0;i<n;i++) printf("%d ",a[i]); return 0;}注:如果 i
2018-01-20 12:37:40
241
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人