plus_one

news/2025/3/9 10:57:08/文章来源:https://www.cnblogs.com/GJ504b/p/18571243

2024/11/26 --2024/11/28

验证哥德巴赫猜想

打印漏斗

1.统计字符

1. 不需要数组,在循环中统计各个种类的字符
2. 一定把各个种类初始化为0
3. 一个一个字符输入,不是字符串一次输入哦
4. 空格是' ' 回车是 '\n'
5. 大小写字母的ASCII码不连续,所以是(s >= 'a'&& s<= 'z') || (s>= 'A'&& s<= 'Z')

alt text

/*统计字符*/
#include<stdio.h>
int main(){int letter, blank, digit, other, i;letter = 0;blank = 0;digit = 0;other = 0;//初始化呀!!!char s;for(i=0;i<10;i++){//不用数组scanf("%c",&s);if(s >= '0' && s <= '9'){digit ++;}else if(s == ' '||  s== '\n'){blank ++;}else if((s >= 'a'&& s<= 'z') || (s>= 'A'&& s<= 'Z')){letter ++;}else{other ++;}}printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);	return 0;
}

最大公约数与最小公倍数

  1. 保证已知两个数的关系【假设M>N】
    if+交换 实现

  2. tmp_M,tmp_N储存M,N的值【1】

  3. 最大公因数 直接背吧
    while(较小数!=0){
    因数=小的数
    小的数=大数%小数
    大数=因数
    }

    alt text

  4. 最小公倍数
    最开始的M*N / 最大公因数【1】

alt text

#include<stdio.h>
int main(){int M,N,tmp,min_beishu, max_yinshu, tmp_M,tmp_N;scanf("%d %d",&M,&N);tmp_M=M;tmp_N=N;if(M<N){tmp = M;M = N;N = tmp;}//保证M>Nwhile(N!=0){//小的数不为0             //小的数不为0---因数=小的数,小的数=大数%小数,大数=因数max_yinshu = N;N = M % N;M = max_yinshu;}//通过不断用较小数替换较大数,并用余数替换较小数,最终得到的非零余数就是两个数的最大公约数。min_beishu=(tmp_M*tmp_N)/max_yinshu;printf("%d %d",max_yinshu,min_beishu);return 0;
}

分割数字的各个位

  1. 讨论0,是0,直接输出
    !!!也要按格式,0后面有空格
  2. 也是套路,从各位输出直到最高位,因为要从高位到低位,所以用数组
    alt text

alt text
3. 逆序输出
【启示】
看到非负数,一定单独想想0!!

#include<stdio.h>
int main(){int input, i, arr[100], count;scanf("%d",&input);i = 0;count =0;if(input == 0){printf("0 ");//(1)格式,后面有空格  (2) 是0要单独考虑}else{while(input>0){//最高位必然不为0arr[i] = input % 10;input /= 10;i ++;count ++;}for(i=count-1;i>=0;i--){printf("%d ",arr[i]);}}return 0;
}

找完数

  1. 主程序实现在区间的数字遍历,给函数传入数字
  2. wanshu函数里找区间里的每个数字找到就按格式打印完数
  • 先找到因数之和
  • 判断==原来的数字?
  • 等于就可以先打印 完数 = 1这个部分了
  • 然后从2开始按照开始找因数的逻辑在循环中打印 + 因数n格式
  • 最后返回1代表找到完数
  • 否则返回0代表没有完数
  1. 返回1,计数器就+1,到所有数字遍历完了count还是0,主线程配合输出None
    一定注意,像count sum flag之类的一定要初始化

alt text

#include<stdio.h>
int wanshu(int num){int i, sum;sum = 0;for(i=1;i<num;i++){if(num % i == 0){sum += i;}}if(sum == num){printf("%d = 1",num);for(i=2;i<num;i++){if(num % i == 0){printf(" + %d",i);}}printf("\n");return 1;}elsereturn 0;
}
int main(){int m, n, i;int count;count = 0;//写了计数器必须count初始化scanf("%d%d",&m,&n);for(i=m;i<=n;i++){if(wanshu(i)){count ++;// break;//不可以写break,写了的话就是说wanshu()只传了一个值}}if(0 == count){printf("None");}return 0;
}

按要求输出方阵

多读多背
i=n * (n-1)
i -= n
i + j

这种方阵的题目就是先找到一个定位点,比如左上角
然后看行列关系额,规律
alt text
左上角是
1 3 7 13
n * (n-1) -1
然后每行+1,j++,每列相差n,所以i-=n,联系上j,就是i=n * (n-1)i + j
唉,复杂,多读多背!!!

alt text

//5-1输出方阵
#include<stdio.h>
int main(){int i, j, n;scanf("%d", &n);for(i=n * (n-1) ; i >= 0 ; i -= n) {for ( j = 1; j < n; j++ ){printf("%4d", i + j);}printf("\n");}		return 0;
}

梅森数

alt text

#include<stdio.h>
int suShu(int number){for(int i=2;i*i<=number;i++){//是小于等于,if(number % i == 0){return 0;}}return 1;}
int meisenShu(int number,int n){for(int i=2;i<=n;i++){if((number + 1) == 1 << i ){return 1;}}return 0;
}int main (){int n, total;int flag = 0;scanf("%d",&n);
//	total = pow(2,n) - 1;total = (1 << n) - 1;for(int i=2;i<=total;i++){if(meisenShu(i,n) && suShu(i)){flag = 1;printf("%d\n",i);}}if(flag == 0){printf("None");}return 0;
}

alt text

#include<stdio.h>
int sushu(int number){for(int i=2;i*i<=number;i++){if(number % i == 0){return 0;}}return 1;}
int main(){long long int N,p,q;scanf("%lld",&N);for(p=2;p*p<=N;p++){if(sushu(p)){q = N - p;if(sushu(q)){printf("%lld = %lld + %lld",N,p,q);break;}}}return 0;
}

alt text

#include<stdio.h>
int maxtimesTop(int N){int i = 0;while(2*i*i <= N+1){i++;}return i-1;
}
int main(){int N, i, j, m, maxtimes, remain;char ch;scanf("%d %c",&N,&ch);maxtimes = maxtimesTop(N);remain = N - maxtimes*2*maxtimes + 1;for(i=0;i<maxtimes;i++){for(j=1;j<i+1;j++){printf(" ");}for(m=0;m<(maxtimes-i)*2-1;m++){printf("%c",ch);}	printf("\n");}for(i=maxtimes-1;i>0;i--){for(j=i;j>1;j--){printf(" ");}for(m=0;m<(maxtimes-i)*2+1;m++){printf("%c",ch);}	printf("\n");}printf("%d",remain);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/841924.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python基础语法 11月22日到11月26日学习过程

Python的环境配置 python安装安装地址官网网址:https://www.python.org 华为云镜像站地址:https://mirrors.huaweicloud.com/homepython根目录介绍根目录截图python的根目录【安装目录】:D:\soft\Python37Scriptspip # 从python官网上下载第三方的库 pip3.7 pip3Lib # py…

快速搭建和访问 FTP 服务器

随着以 minio 为代表的分布式系统的广泛应用,使用 FTP 的场景就越来越少了,目前仍然在一些简单的应用场景中使用。 本篇博客使用 fauria/vsftpd 的 docker 镜像,介绍 FTP 服务器搭建的两种方式:匿名访问方式 和 使用账号密码访问方式。然后使用 SpringBoot 程序通过代码访问…

Beta阶段——第十周Scrum Meeting记录

1.目前进度: (1)实现沙盒模式,基础逻辑门组件的搭建功能; (2)组件的增加,移动,旋转,删除; (3)逻辑电路的布线及删除; (4)高低电平测试;2.目前团队中存在的问题: (1)前期未能很好的使用Github仓库,导致工作进度难以同步; (2)大多数成员对Unity和C#编程语…

从软件工程的角度,谈模块为什么总是不兼容

前言 今天刚刷上Apatch,发现其没有提供Zygisk,又去酷安搜了一搜,似乎有人反应刷Lsposed不起作用,大致了解了一下,并查了些资料。下面我开始猜测以及进行理论。 说是从软件工程出发,但是实际上我并不算一个好学生,更无法代表软件工程,这或许很标题党,但是我确实想以这个…

uml用例图-2024/11/26

超市进销存管理系统

MySQL报错:sql_mode=only_full_group_by解决方法

MySQL报错:sql_mode=only_full_group_by解决方法 登录mysql之后,执行命令查看当前的sql_mode配置 select @@global.sql_mode;​​ 可以发现MySQL的sql_mode是开启了ONLY_FULL_GROUP_NY。 解决方法 把 sql_mode 中的 ONLY_FULL_GROUP_NY​去掉,其他不变即可。 找到MySQL的配置…

使用Lombok导致打印的tostring中缺少父类的属性

背景 实体类UserDto extends BaseEntity,两个类的上方都有标注,Lombok的@Data注解,但是使用时UserDto的实例对象调用toString方法时发现,只打印出来自身子类的属性信息,并没有打印出来父类的信息。@Data public class UserDto extends BaseEntity { /*** 姓名*/@TableFiel…

20222322 2024-2025-1 《网络与系统攻防技术》实验五实验报告

1.实验内容 1.1实验要求 (1)从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取相关信息。 (2)尝试获取BBS、论坛、QQ、MSN中某一好友的IP地址,并查询获取该好友所在的具体地理位置。 (3)使用nmap开源软件对靶机环境进行扫描,回答以下问题并给…

华为鸿蒙智家品牌升级背后:开拓者,引领者,赋能者

今天,华为重磅推出全新品牌“华为鸿蒙智家”亮相华为Mate品牌盛典。 华为作为产业的开拓者,一直引领产业进化,带动产业从懵懂到成熟。这一次品牌升级将借势鸿蒙,为空间智能产业打开更大的想象空间。持续进化,带来更高阶的智感 作为一个热门赛道,科技巨头和家电企业均积极…

Threejs的三维坐标系

在三维空间中,所有的物体和相机都需要基于一个统一的坐标系来进行定位和操作。理解坐标系的基本概念,对于创建稳定、准确的三维效果至关重要。 基础 Three.js 采用的是右手坐标系,这意味着如果你将右手的三个手指伸直,分别指向 X、Y 和 Z 轴的方向,你的拇指指向的方向即为…

图像尺寸变换scalepadding方法

在深度学习中,当需要将图像调整到特定尺寸时,直接resize可能会导致图像失真,特别是当目标尺寸与原始图像的宽高比不一致时。为了解决这个问题,一种最常见的方法是首先按照原始图像的宽高比将图像调整到与目标尺寸最接近的尺寸,然后在剩余的空间中使用padding进行填充,以得…

笔记本电脑复活记

0.前言 一次偶然的停电让我蒙受了巨大的损失。恢复供电之后发现笔记本电脑无法正常启动,经检查发现硬盘坏了。经过检查确认是硬件坏了,但没有损伤盘片。决定通过数据恢复拯救损失的数据。与此同时,电脑的散热风扇已经响了很久了,决定这一次也更换了它。 经过几天的折腾,笔…