算法
泸州月
这个作者很懒,什么都没留下…
展开
-
STM32-OLED小数显示函数
OLED显示和传统的LCD显示不同,其可以自发光,所以不需要背光灯,这使得OLED显示屏相对于LCD显示屏尺寸更薄,同时显示效果更优。OLED显示技术具有自发光、广视角、几乎无穷高的对比度、较低功耗、极高反应速度、可用于绕曲性面板、使用温度范围广、构造及制程简单等有点,被认为是下一代的平面显示屏新兴应用技术。OLED网上的驱动代码一般厂商发货会提供驱动程序,但是显示小数很多都没有编写。这里编写了一段可显示任意位小数的代码(以正点原子代码为基础),需要显示有符号的小数程序稍微修改即可。原创 2023-03-23 17:22:14 · 6115 阅读 · 6 评论 -
坐标计算工具
开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10;A1A;;YAD;等。下面是一个简单的例子 如:A10;S20;W10;D30;X;A1A;B10A11;;A10;处理过程:起点(0,0)+ x = 无效+ A1A = 无效。原创 2022-12-17 17:18:41 · 305 阅读 · 0 评论 -
王强的购物单
如果要买归类为附件的物品,必须先买该附件所属的主件,且每件物品只能购买一次。每个主件可以有 0 个、 1 个或 2 个附件。附件不再有从属于自己的附件。王强查到了每件物品的价格(都是 10 元的整数倍),而他只有 N 元的预算。除此之外,他给每件物品规定了一个重要度,用整数 15 表示。他希望在花费不超过 N 元的前提下,使自己的满意度达到最大。满意度是指所购买的每件物品的价格与重要度的乘积的总和,假设设第ii件物品的价格为v[i]v[i],重要度为w[i],共选中了k。原创 2022-12-17 15:56:29 · 491 阅读 · 0 评论 -
求int型正整数在内存中存储时1的个数
输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。数据范围:保证在 32 位整型数字范围内。这个数转换成2进制后,输出1的个数。输入一个整数(int类型)原创 2022-12-16 17:51:49 · 156 阅读 · 0 评论 -
字符串排序
输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。给定 n 个字符串,请对 n 个字符串按照字典序排列。数据输出n行,输出结果为按照字典序排列的字符串。原创 2022-12-16 17:49:58 · 101 阅读 · 0 评论 -
句子逆序问题
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符。输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。数据范围:输入的字符串长度满足。原创 2022-12-16 17:47:26 · 83 阅读 · 0 评论 -
字符串反转
接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)输入一行,为一个只包含小写字母的字符串。输出该字符串反转后的字符串。原创 2022-12-16 17:45:15 · 106 阅读 · 0 评论 -
数字逆序颠倒输出
输入一个整数,将这个整数以字符串的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为0010≤n≤230−1。原创 2022-12-16 10:03:09 · 518 阅读 · 0 评论 -
字符个数统计
编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次。例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3。输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。输入一行没有空格的字符串。原创 2022-12-16 09:48:16 · 85 阅读 · 0 评论 -
提取不重复的整数
输入一个 int 型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。保证输入的整数最后一位不是 0。数据范围:1≤n≤108。原创 2022-12-16 09:31:40 · 91 阅读 · 0 评论 -
合并表记录
数据表记录包含表索引index和数值value(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照index值升序进行输出。接下来n行每行输入成对的index和value值,以空格隔开。输出合并后的键值对(多行)先输入键值对的个数n(原创 2022-12-15 20:26:24 · 72 阅读 · 0 评论 -
浮点数取近似值
写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整;小于 0.5 ,则向下取整。数据范围:保证输入的数字在 32 位浮点数范围内。输出该数值的近似整数值。原创 2022-12-15 20:25:13 · 241 阅读 · 0 评论 -
质数因子分解
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )按照从小到大的顺序输出它的所有质数的因子,以空格隔开。原创 2022-12-15 20:22:57 · 144 阅读 · 0 评论 -
十六进制转换十进制
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。输出该数值的十进制字符串。不同组的测试用例用\n隔开。输入一个十六进制的数值字符串。数据范围:保证结果在。原创 2022-12-15 20:20:55 · 404 阅读 · 0 评论 -
字符串分隔
•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。连续输入字符串(每个字符串长度小于等于100)依次输出所有分割后的长度为8的新字符串。原创 2022-12-15 20:18:44 · 78 阅读 · 0 评论 -
明明的随机数
明明生成了N个1到500之间的随机整数。请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。第一行先输入随机整数的个数 N。接下来的 N 行每行输入一个整数,代表明明生成的随机数。具体格式可以参考下面的"示例"。,输入的数字大小满足 $1≤val≤500 $输出多行,表示输入数据处理后的结果。原创 2022-12-15 20:16:30 · 90 阅读 · 0 评论 -
计算某字符出现次数
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。输出输入字符串中含有该字符的个数。(不区分大小写字母)原创 2022-12-15 20:13:46 · 150 阅读 · 0 评论 -
字符串最后一个单词的长度
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)输入一行,代表要计算的字符串,非空,长度小于5000。输出一个整数,表示输入字符串最后一个单词的长度。原创 2022-12-15 20:09:22 · 151 阅读 · 0 评论 -
马踏棋盘
马踏棋盘问题详解涉及算法:递归,回溯法,深度优先搜索算法题目需求:国际象棋的棋盘为8*8的方格,现将"马"放在任意制定的方格中,按照"马"走棋的规则将"马"进行移动。要求每个方格只能进入一次,最终使得"马"走遍棋盘的64个方格。编写代码,实现马踏棋盘的操作要求用1~64来标注"马"移动的路径。国际象棋的马在走法上与象棋有相似之处,但是国际象棋是站在在格子里边的,而象棋站线的交界处。马踏棋盘代码实现(递归版本):#include<stdio.h>int pan[8][8]={0};原创 2020-12-25 14:07:58 · 210 阅读 · 0 评论 -
N皇后问题详解
N皇后问题详解 N皇后问题 问题实在八皇后问题上的进一步扩展,对于八皇后问题做简单描述。八皇后问题,一个古老而著名的问题,是回溯算法的典型案例。该问题由国际西洋棋棋手马克斯·贝瑟尔于 1848 年提出:在 8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有 76 种方案。1854 年在柏林的象棋杂志上不同的作者发表了 40 种不同的解,后来有人用图论的方法解出 92 种结果。如果经过±90度、±180度旋转,和原创 2020-12-25 13:37:51 · 360 阅读 · 0 评论 -
八皇后问题详解
八皇后问题 八皇后问题,一个古老而著名的问题,是回溯算法的典型案例。该问题由国际西洋棋棋手马克斯·贝瑟尔于 1848 年提出:在 8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有 76 种方案。1854 年在柏林的象棋杂志上不同的作者发表了 40 种不同的解,后来有人用图论的方法解出 92 种结果。如果经过±90度、±180度旋转,和对角线对称变换的摆法看成一类,共有42类。计算机发明后,有多种计算机语言可原创 2020-12-25 13:15:27 · 217 阅读 · 0 评论 -
分糖果
分糖果算法描述: 有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每个小朋友都把自己的糖果分一半给左手边的孩子。 一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。 反复进行这个游戏,直到所有小朋友的糖果数都相同为止。 你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖原创 2018-01-11 11:53:24 · 283 阅读 · 0 评论 -
数位拆分--逆序数
数位拆分–逆序数问题描述给定一个数n,将这个数的各位顺序颠倒,称为逆序数m。例如1234的逆序数是4321。数据输入输入多个正整数n(0~n~10^9)。输入不会包含多余的前导零,即不会输入0021这样的数。结果输出如果m是n的k倍(k为整数),那么输出n*k=m。如果m不是n的整数倍,那么输出n和n的逆序数。逆序如果有前导零需要输出。输入样例:10891234120输原创 2018-01-11 11:56:24 · 720 阅读 · 0 评论 -
多个数的最小公倍数
多个数的最小公倍数问题描述:输入多个数求这个数的最小公倍数。输入:输入包含多组测试数据,每组数据的第一行为输入数据的个数n(n输出:输出为n个数的最小公倍数。输入样例:32 6 90输出样例:18代码如下:#include//为了防止溢出全开long long,gcd函数是找出两个数的最大公因数(辗转相除法);long long gc原创 2018-01-11 19:00:18 · 478 阅读 · 0 评论 -
木块问题
vector–木块问题题目描述:从左到右有n(nmove a onto b:把a和b上方的木块全面归位,然后把a摞到b上面move a over b:把a上方的木块全部归位,然后把a放到b所在的木块堆的顶部。pile a onto b:把b上方的木块全部归位,然后把a及上面的木块放到b的上面。pile a over b:把a及上方的木块放到b所在的木块堆的顶部遇到qui原创 2018-01-11 19:04:42 · 949 阅读 · 0 评论 -
最小公倍数和最大公约数
最小公倍数和最大公约数题目描述:求最小公倍数和最大公约数输入:输入多组测试数目,每一组包含两个正整数a,b(a,b 输出:对于每组输出两个数,分别表示a,b的最大公约数和最小公倍数样例输入:6 9125 200样例输出:3 1825 1000代码如下:#include // 用辗转相除法求最大公约数 int gcd(int a, int原创 2018-01-12 19:22:54 · 241 阅读 · 0 评论 -
最大质因数
最大质因数问题描述给定一个正整数N,求解它的最大质因数。输入格式:输入正整数N(1~N~2^63-1),当输入0结束。输出格式:输出最大质因数。输入示例:97532468输出示例:1291代码如下:#include #include // 判断x是否是素数 bool isPrime(int x) { int m = (int)sqrt(原创 2018-01-12 19:26:12 · 1823 阅读 · 0 评论 -
质因素分解
质因素分解问题描述给定一个正整数N,将他分解成N=p1^k1*p2^k2*...*pm^km.其中p1...输入格式:输入正整数N(1~N~2^63-1)输出格式:输出分解的表达式输入示例:97532468输出示例:97532468=2^2*11*17*101*1291代码如下:#include #include #include co原创 2018-01-12 19:29:01 · 427 阅读 · 0 评论 -
素数判定
素数判定题目描述对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39=x输入格式:输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。输出格式:对于每个给定范围内的取值,如果表达式的值都为素数,则输出”OK”,否则请输出“Sorry”,每组输出占一行。样例输入:0 10 0样例输出:原创 2018-01-12 19:34:32 · 375 阅读 · 0 评论 -
数素数
数素数题目描述:令pi表示第i个素数。现在给定两个正整数M输入格式:在一行中给出m和n,中间以空格分割。输出格式:输出从pm~pn的所有素数,每10个数字占一行,其间以空格分割,但行末不得有多余空格。输入样例:5 7输出样例:11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73 79 83 8997 101原创 2018-01-12 19:38:23 · 207 阅读 · 0 评论 -
汉诺塔问题
汉诺塔问题问题描述:汉诺塔是由三根杆子A,B,C组成的。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆:每次只能移动一个圆盘;大盘不能叠在小盘上面。提示:可将圆盘临时置于B杆,也可将从A杆移出的圆盘重新移回A杆,但都必须尊循上述两条规则。问:如何移?最少要移动多少次?汉诺塔是根据一个传说形成的一个问题:有三根杆子A,B,C。A杆上有N个(N>原创 2018-01-16 17:51:39 · 711 阅读 · 0 评论 -
三角形面积
三角形面积问题描述:输入三角形三条边a,b,c输出三角形面积输入样例:32 3 43 4 71 5 7输出样例:2.900.000.00代码如下:#include #include #include int main(){ int t; double a, b, c; scanf("%d", &t);原创 2018-01-10 11:59:11 · 292 阅读 · 0 评论 -
进制转换
进制转换问题描述: 设计程序,将用户输入的十进制正整数转化为十六进制数,并在屏幕上输出 输入 输入一个十进制正整数n 输出 n的十六进制表示 输入示例:30输出示例:1EH代码如下:#include const int maxn = 100+10;//定义数组大小 int num[maxn];//缓存转换后数据 int index原创 2018-01-10 12:02:31 · 422 阅读 · 0 评论 -
数位拆分--逆序数
数位拆分–逆序数问题描述给定一个数n,将这个数的各位顺序颠倒,称为逆序数m。例如1234的逆序数是4321。数据输入输入多个正整n(0~n~10^9)。输入不会包含多余的前导零,即不会输入0021这样的数。结果输出如果m是n的k倍(k为整数),那么输出n*k=m。如果m不是n的整数倍,那么输出n和n的逆序数。逆序如果有前导零需要输出。输入样例:10891234120输出样例原创 2018-01-10 12:05:14 · 1171 阅读 · 0 评论 -
母牛的故事
母牛的故事题目描述:有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?输入:输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0~n~55),n的含义如题目中描述。 n=0表示输入数据的结束,不做处理。输出:对于每个测试实例,输出在第n年的时候母牛的数量。 每个输出占一行。原创 2018-01-10 23:21:30 · 266 阅读 · 0 评论