练习练习
Tket
这个作者很懒,什么都没留下…
展开
-
子序列的和
一.题目 习题2-4 子序列的和 输入两个正整数,n #include int main() { int n,m; double re=0; int i=1; int count=1; do { scanf("%d %d",&n,&m); if(n==0&&m==0) return; els原创 2018-01-31 20:50:20 · 437 阅读 · 0 评论 -
二分搜索 (已序)
一.题目 Description 编写Search_Bin函数,实现在一个递增有序数组ST中采用折半查找法确定元素位置的算法. 输入格式 第一行:元素个数n 第二行:依次输入n个元素的值(有序) 第三行:输入要查找的关键字key的值 输出格式 输出分两种情形: 1.如果key值存在,则输出其在表中的位置x(表位置从0开始),格式为The element position i...原创 2018-04-08 16:10:16 · 303 阅读 · 0 评论 -
习题-----进制转换
一.题目 二.思路 思路都在代码里啦,主要是进制转换和控制输出。我没有做出完整的题目,做了一部分,主要还是个思路,一个的会了,多个的也就加个循环而已了。 三.代码 #include <stdio.h> #include<string.h> char s[10000]; void func(int num,int tar) //进制转换函数 { i...原创 2018-02-08 19:09:36 · 765 阅读 · 0 评论 -
排列 ----dfs算法
一.题目 习题2-6 排列 用 1,2,3…,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。按照“abc def ghi”的格式输出所有解,每行一个解。提示:不必太动脑筋。 二.分析 这道题可以用我第一个知道名字的算法——-dfs (深度优先搜索)算法,经常用于数的排列组合。框架大概是: 一个判断边界优先 + 一个当前...原创 2018-01-31 21:40:14 · 217 阅读 · 1 评论 -
开灯问题-----双重循环及dfs解法
一.题目 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯被打开, 开着灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着? 输入:n和k,输出开着的灯编号。k≤n≤1000。 样例输入:7 3 样例输出:1 5 6 7 二.思路 看...原创 2018-02-01 15:20:33 · 227 阅读 · 0 评论 -
习题--------谜题
一.题目 有一个5*5的网格,其中恰好有一个格子是空的,其他格子各有一个字母。一共有4种指令:A, B, L, R,分别表示把空格上、下、左、右的相邻字母移到空格中。输入初始网格和指令序列(以数字0结束),输出指令执行完毕后的网格。如果有非法指令,应输出“This puzzle has no final configuration.” 例如,图3-5中执行ARRBBL0后,效果如图3-6所示。原创 2018-02-03 17:03:21 · 452 阅读 · 0 评论 -
习题-----周期串
一.题目 如果一个字符可以由某个长度为k的字符串重复多次得到,则称该字符串以k为周期。例如,abcabcabc以3为周期(注意,他也以6和12为周期) input hohoho output 2 二.思路 最小周期,从1开始找,找到可以满足就退出,找不到就输出字符串的长度。 三.代码 #include #include char s[100000]; int main ()原创 2018-02-03 16:22:24 · 264 阅读 · 0 评论 -
习题---数数字
一.题目 把前n(n 二.思路 题意:输入n,而不是输入123456789 没留意到,以致于写错了 后面改了一下,就不用用到s[100000]数组了 三.代码 #include #include int b[10]; int main () { int i=0; int n; scanf("%d",&n); for(i=1;i<=n;i++)原创 2018-02-03 15:12:58 · 408 阅读 · 0 评论 -
分子量
一.题目 给出一种物质的分子式(不带括号),求分子量。本题中的分子式只包含4种原子,分别为C, H, O, N,原子量分别为12.01, 1.008, 16.00, 14.01(单位:g/mol) 二.分析 难点:在字符串中分离出数字和字符 一个个利用i+1去识别,识别到了就i++,没有就不变i 三.代码 #include #include //0的ascii 为48 char原创 2018-02-03 14:52:29 · 1032 阅读 · 0 评论 -
习题-----得分
一.题目 给出一个由O和X组成的串(长度为1~80),统计得分。每个O的分数为目前连续出现的O的个数,X的得分为0。例如,OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3。 二.思路 可以直接一个个字符读了之后,利用情况来进行置不置0的选择,也可以读取一整段字符串,在单独在判断置不置0.我选择一整个字符串来进行读取 三.代码 #include #include原创 2018-02-03 09:46:38 · 1178 阅读 · 0 评论 -
环形序列
一.题目 长度为n的环状串有n种表示法,分别为从某 个位置开始顺时针得到。例如,图3-4的环状串 有10种表示: CGAGTCAGCT,GAGTCAGCTC,AGTCAGCTCG等。在这些表示法中,字典序最小的称 为”最小表示”。 输入一个长度为n(n≤100)的环状DNA串(只包含A、C、G、T这4种字符)的一种表 示法,你的任务是输出该环状串的最小表示。例如,CTCC的最小表示是原创 2018-02-02 22:15:57 · 409 阅读 · 0 评论 -
求一定范围的素数个数(大表思路)
一.题目 给出n(1 输入格式 第1行,1个整数T(T 第2—第T+1行,每行1个整数,表示测试数据n 输出格式 对于每个测试数据,输出1行,每行1个数,表示1到n之间的素数个数 输入样例 5 1 2 100 1000 5000 输出样例 0 1 25 168 669 二.思路 仍然是大表思路,虽然还是”超时“… 三.代码 #include #in原创 2018-02-02 21:02:05 · 2026 阅读 · 0 评论 -
生成元问题(大表思路)
一.题目 如果x加上x的各个数字之和得到y,就说x是y的生成元。给出n(1≤n≤100000),求最小 生成元。无解输出0。例如,n=216,121,2005时的解分别为198,0,1979 二.分析 数学问题,需要求出各个位的数字并累加;根据书本的提示,为了省时间,应该去做一张大表来减少时间。 三.代码 #include #include int target[100000]; /原创 2018-02-02 19:51:28 · 741 阅读 · 0 评论 -
镜像串与回文串
一.题目 习题 输入一个字符串,判断它是否为回文串以及镜像串。 输入字符串保证不含数字0。 所谓 回文串,就是反转以后和原串相同,如abba和madam。 所有镜像串,就是左右镜像之后和原串相同,如2S和3AIAE。 注意,并不是每个字符在镜像之后都能得到一个合法字符。 样例输入: NOTAPALINDROME ISAPALINILAPASI 2A3MEAS ATOYOTA 样原创 2018-02-02 15:05:53 · 2258 阅读 · 2 评论 -
蛇形填数(扩充版)
习题 蛇形填数 一.题目 描述 在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 输出 输出结果是蛇形方陈。 样例输入 3 样例输出 7 8 1 6 9 2 5 4 3 二.思路 一步一步的填,就是这个问题的解决核心.原创 2018-02-01 20:24:23 · 162 阅读 · 0 评论 -
分数化小数
一.题目 习题2-5 分数化小数 输入正整数a,b,c,输入a/b的小数形式,输入包含多组数据,结束标记为a=b=c=0精确到小数点后c位。a,b≤106,c≤100 二.分析 “%.变量f” 是不可能的。因此我们需要一个个位去输出,乘以10再取余10就可以找到位来输出了。最后一步要考虑舍四进五。 三.代码 #include int main() { int a,b;原创 2018-01-31 20:59:45 · 181 阅读 · 1 评论 -
快速排序 ---C&C++
#include"stdio.h" #include"stdlib.h" // exit() int a[10] = {1,10,5,4,7,8,6,2,3,4}; void func(int a[10],int left, int right) { int i,j,temp; int t; if(left > right) return ; //这...原创 2018-04-02 16:34:14 · 117 阅读 · 0 评论