- 博客(13)
- 收藏
- 关注
原创 简易计算器
prevch=ch;// 根据前一次输入的符号对sum进行运算。若要考虑优先级问题那么代码复杂度将大幅上升。输入一个算式(无空格),以回车键结束输入。(只能进行加减乘除运算,且优先级相同){ // 读取第一个数。
2025-01-04 19:44:50
497
原创 递归回溯法解决数的拆分问题
/ 继续将i作为下一个数的起点a。// n/i为下一个因子的起点。i++) { // 范围从a到n/a。// 拆分从2开始,去掉1*n组合。=n/i) // 若n不是平方数,还要进行递归。if(n%i==0) { // 找因子。// 如果n为0,则打印当前组合。// 如果n为0,则打印当前组合。// 从a到n递增进行拆分。
2025-01-02 14:13:08
406
原创 w,a,s,d移动图形,输入一次移动一格
direction: (w:向上;// 清除输入缓冲区的回车符。// 读取第一个字符。#include // 仅用于识别图形英文名。}// 到边界了space的值保持为0。}// 到边界了row的值保持为0。输入格式: shape: (图形英文名)
2025-01-01 18:43:15
563
原创 求m到n区间的素数和,同时判断该区间格式是否正确
可以省略,但是n=(m<0 && n<0)?a++) // 对称性:a*b=b*a,除数取到一半即可(取等是为了排除非素数4)double m,n;// 修复整型输入字符出现的问题,同时可以接收小数(参数传递自动转为整型)n=(m<0 && n<0)?// -1作为初值,为未能符合循环条件的标记。if(fun(m,n)==0) printf("该区间没有任何素数");
2024-12-30 21:35:50
430
原创 迭代法将十进制转换为R进制
在迭代法中,从一个初始猜测值(或称为初始迭代点)开始,根据某种迭代规则(或称为迭代公式)计算出下一个近似解,然后用这个新的近似解作为下一次迭代的起点,如此反复进行,直到满足某个停止准则为止。如果要将十进制转换为R进制,那么要将一个十进制数不断乘以和除以基数R,分别取整数和余数,且每一次迭代都输出其中一位,最后利用小数点将整数部分和小数部分拼接后输出。格式:输入十进制正数(可以有小数):(num)printf("确定转换进制:");printf("确定转换精度:");printf("输出: ");
2024-12-28 11:10:32
1116
原创 打印轴对称字母金字塔
for (i = 1;i <= n;i++){for (j = 1;j <= space;j++) {for (j = 1;j <= x;j++){
2024-12-24 11:09:17
251
原创 输入一行单词,每个单词首字母大写,其余字母均为小写
'\n') /*连续输入字符,回车跳出*/if(a==' ')/*如果输入空格,将下一次输出字符大写*//*避免大写字母输入后小写字母又一次大写*/{putchar(a-q);/*首字母-32变为大写*/if(a='A')/*先判断大小写*//*如果输入空格,大写字母将原封不动*//*小写转大写*/}}}/*大写转小写*/}
2024-12-23 21:30:12
228
原创 递归法求a+aa+aaa+...
因为每次都要返回a*10+第一个a作为下一次a的值,而第一个a的值不好控制,直接返回a+fun(a*10+a,n-1)显然不可取,所以要通过数学方法进行拆解。我们可以每次返回前几项的和,先返回a+fun(a,n-1)*10,发现刚好缺少一个含有a的项,这样这个a就能顺理成章参与递归过程。思路:(以a=2为例的一次递归具体过程)
2024-12-20 19:29:52
287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人