——算法竞赛入门
张今天
这个作者很懒,什么都没留下…
展开
-
刘汝佳--孪生素数
思路: 在一个函数中完成判断是否是素数,【注释:assert 宏来限制非法的函数调用:当x>=0不成立时,程序将异常停止,并提示信息】 #include<stdio.h>#include<math.h>#include<assert.h>int is_prime(int n){ assert(n>=0); if(n<=1) return 0; int i原创 2017-07-24 23:38:21 · 300 阅读 · 0 评论 -
刘汝佳--蛇形填数
问题描述: 在n*n方陈里填入1,2,…,n*n,要求填成蛇形。例如n=4时方陈为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 输入: 直接输入方陈的维数,即n的值。(n<=100) 输出 输出结果是蛇形方陈。 输出: 输出结果是蛇形方陈。 样例输入: 3样例输出:7 8 1 6 9 2 5 4 3思原创 2017-07-24 16:40:37 · 636 阅读 · 0 评论 -
刘汝佳--开灯问题
问题描述: 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3 个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯编号。k≤n≤1000 输入: 输入一组数据:n和k 输出: 输出开着的灯编号n和k 样例输入: 7原创 2017-07-24 02:05:59 · 369 阅读 · 0 评论 -
刘汝佳--WERTY
思路: 每输入一个字符,都可以直接输出一个字符,问题在于如何进行这样的变换呢?一个方法是使用if语句或者witch语句,如:if(c==‘w’)putchar(‘Q’),但这样很麻烦,直接存到一个数组中进行数组的移位就可以了。 代码: #include<iostream> #include<stdio.h> #include<string.h>char*s="`1234567890原创 2017-09-28 18:39:54 · 1097 阅读 · 0 评论 -
刘汝佳--TeX括号
思路: 本题的关键是,如何判断一个双引号是“左”引号,还是“右”引号,使用一个标记变量即可。 代码: #include<iostream> #include<stdio.h>using namespace std;int main(){ int c,q=1; while((c=getchar())!=EOF) //输入字符,直至遇到回车会打印,打印之后,还可以继原创 2017-09-28 18:45:38 · 221 阅读 · 0 评论 -
刘汝佳--周期串
思路: 题目中说过,字符串可能有多个周期,但因为只需求出一个最小的,可以从小到大枚举各个周期,一旦符合就立刻输出;下面的变量只存在自己的循环中。 代码: #include <stdio.h> #include <iostream> #include <string.h>using namespace std;int main(){ char word[100];原创 2017-09-28 18:51:52 · 423 阅读 · 0 评论 -
刘汝佳--小学生算数
思路: 注意int的上限约2000000000,可以保存9位数字,因此可以用整数保存输入,每次把a和b分别模10就能获取他们的个位数。 代码: #include<iostream> #include<stdio.h> #include<string.h> using namespace std; int main() { int a,b; wh原创 2017-09-28 18:57:10 · 445 阅读 · 0 评论 -
刘汝佳--最长回文字符串
思路:利用枚举回文串的起点和终点,然后判断他是否是回文字符串。fgets:从文件中读取一行数据存入缓冲区(fgets遇到回车才会结束,不对空格和回车做任何转换就录入到缓冲区,结束后再往缓冲区写多一个\0,所以它是读一行数据)原创 2017-07-24 22:11:16 · 381 阅读 · 0 评论