c刷题(一)

news2025/1/23 9:30:48

目录

1.输出100以内3的倍数

2.将3个数从大到小输出

3.打印100~200素数

方法一

方法二

4.显示printf的返回值

最大公约数

试除法

辗转相除法

九九乘法表

 求十个数的最大值


1.输出100以内3的倍数

 法一:

int n = 0;
while (n*3 < 100)
	{
		printf("%d ", n*3);
		n++;
	}

法二:

	int i = 0;
	for (i = 1; i <= 100; i++) 
	{
		if (i % 3 == 0)
		{
			printf("%d ", i);
		}
	}

2.将3个数从大到小输出

由于只有3个数,我们可以采用中间变量换值的方法,相比于依次判断就显得很简单了。

	int a = 0;
	int b = 0;
	int c = 0;
	int tmp = 0;
	scanf("%d %d %d", &a, &b, &c);
	if (a < c)
	{
		tmp = c;
		c = a;
		a = tmp;
	}
	if (a < b)
	{
		tmp = b;
		b = a;
		a = tmp;
	}
	if (b < c)
	{
		tmp = b;
		b = c;
		c = tmp;
	}

	printf("%d %d %d\n", a, b, c);
	return 0; 
}

需要注意的是,这种办法改变了原变量的值。

3.打印100~200素数

方法一

素数,也称质数,特点是只能被1和自身整除,那我们是不是可以用2~n-1之间的数依次来取模进行判断呢?如果有一个数能被整除,那它就不是质数,反之是质数。

	int i = 101;
	int n;
	for (i = 101; i < 200; i++)
	{
		int flag = 0;//开关
		for (n = 2; n < i; n++)
		{
			if (i % n == 0)
			{
				flag = 0;
				break;
			}
			else flag = 1;
		}
		if(flag == 1)
			printf("%d ", i);	
	 }

 因为其中一个数不能整除并不代表它不是素数,所以我们设置一个开关,依次在真和假中切换,能整除为假,不能整除为真,遍历一遍后根据flag的值判断它是否为素数。

方法二

任意不是素数的数都可以分为 m*n的形式。

16 = 4*4 

16 = 2*8

如果将这个数开平方,如果它不是素数,则在2~√n之间必定有个数使它的因子。

(例:√18 = 3(整形省略分数)

             18 = 2*9 18 = 3*6    

大家想想是不是这样的道理,这样做可以减少遍历的次数。

#include <stdio.h>
#include<math.h>
int main(){
    int i = 101;
	int n;
	for (i = 101; i < 200; i+2)
	{
		int flag = 0;
		for (n = 2; n <= sqrt(i); n++)
		{
			if (i % n == 0)
			{
				flag = 0;
				break;
			}
			else flag = 1;
		}
		if(flag == 1)
			printf("%d ", i);	
	 }
return 0;
}

注意因子可以等于√n,sqrt是用来求根号的函数,需要包含头文件math.h

因为偶数不可能是素数,我们可以跳过偶数部分只进行奇数的循环。

4.显示printf的返回值

要求:第一行输入printf的输出值,第二行输出printf的返回值。

	int ret = printf("hello world!");
	printf("\n%d", ret);
//等价于
	int ret = printf("\n%d", printf("hello world!"));

 

由此我们可以得出结论:printf返回值是字符的个数 

最大公约数

试除法

我们找到两个数中较小的那个,用它依次递减,如果能被这两个数整除,那它就是最大公约数。

    int a = 0, b = 0;
	scanf("%d %d", &a, &b);
	int ret = a > b ? b : a;

	while (a % ret || b % ret)
	{
		ret--;
	}
	printf("%d\n", ret);

辗转相除法

具体来说就是两个数先求模,如果不等于0,被除数作为下一个除数,它们的模为新的被除数继续直到没有余数为止

例如:24%12 = 0,则12就是最大公约数。25%12 = 1,12%1 = 0,1就是最大公约数。

反过来12%24 = 12,24%12 = 0,方法仍成立。

	int a = 0, b = 0;
	int r = 0;
	scanf("%d %d", &a, &b);
	while (r = a % b)
	{
		a = b;
		b = r;
	}
	printf("%d\n", b); 

 附加题:如果要求最小公倍数该怎么做呢?

这里有个公式:最小公倍数 = 两数之积除以最大公约数(a*b/r)

九九乘法表

    int i = 0;
	for (i = 1; i <= 9; i++)
	{
		//打印一行
		int j = 0;
		for (j=1; j<=i; j++)//列数不超过行数
		{
			printf("%d*%d=%-2d ", i, j, i * j);
		}
		printf("\n");
	}

不多赘述,注意我们这里采用左对齐%-2d的方式使得代码整齐,希望大家写代码的时候也能用到这样的技巧。

 求十个数的最大值

这个没什么好说的,假定一个变量max遍历数组,选出最大值即可。需要注意的是,max只能是数组内的一个值,如果给它初始值为0,遇到负数可能会出现错误。

int arr[] = { -1,-2,-3,-4,-5,-6,-7,-8,-9,-10 };
	int max = arr[0];
	int i = 0;
	for (i = 1; i < 10; i++)//从第二个数开始
	{
		if (arr[i] > max)
			max = arr[i];
	}
	
	printf("%d\n", max);

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue-router多级路由

目录 直接通过案例的形式来演示多级路由的用法 文件结构 Banner.vue <template><div class"col-xs-offset-2 col-xs-8"><div class"page-header"><h2>Vue Router Demo</h2></div></div> </template><…

6.2.tensorRT高级(1)-第一个完整的分类器程序

目录 前言1. CNN分类器2. 补充知识2.1 知识点2.2 智能指针封装 总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习 tensorRT …

《MySQL45讲》笔记—索引

索引 索引是为了提高数据查询效率&#xff0c;就像书的目录一样。如下图&#xff0c;索引和数据就是位于存储引擎中&#xff1a; 索引常见模型 哈希表 以键值对存储的数据结构。适用于只有等值查询的场景。 有序数组 在等值查询和范围查询场景中性能都特别优秀。但是有…

Flowable-服务-Rest任务

目录 定义图形标记XML内容界面操作 定义 Rest 任务不是 BPMN 2.0 规范定义的官方任务&#xff0c;在 Flowable 中&#xff0c;Rest 任务是作为一种特殊的服务 任务来实现的&#xff0c;主要调用rest服务使用。 图形标记 由于 Rest 任务不是 BPMN 2.0 规范的“官方”任务&…

记ECC例题

文章目录 题一([HGAME 2022 week4]ECC)题目描述&#xff1a;题目分析&#xff08;概念题&#xff09;&#xff1a; 题二([watevrCTF 2019]ECC-RSA)题目描述&#xff1a;题目分析&#xff08;多项式求根&#xff09;&#xff1a; 题三(ECC)题目描述&#xff1a;题目分析&#xf…

SE11数据表外键应用-SM30 表维护

前言 外键作为数据库表的一个重要属性&#xff0c;但是在SAP中却很少使用&#xff0c;此处简单说明外键在表维护中起到的作用。 为数据库表字段设置外键&#xff0c;并生成表维护后&#xff0c;默认使用外键表作为搜索帮助&#xff0c;且可以校验字段有效值&#xff1b; 设置外…

多线程只需这一篇足够

开玩笑的 本篇详细讲述了多线程的各种细节及操作方法 对锁的各种操作&#xff0c;以及原子性的阐述 原谅我嚣张的标题 Begin&#xff1a;本篇文章尽可能详细的讲述了线程的概念、使用、安全问题&#xff0c;以及消费者生产者模型的设计理念和实现代码。对于单例模式的两种实现代…

Linux——进程控制

目录 1. 进程创建 1.1 fork函数 1.2 fork系统调用内部宏观流程 1.3 fork后子进程执行位置分析 1.4 fork后共享代码分析 1.5 fork返回值 1.6 写时拷贝 1.7 fork常规用法 1.8 fork调用失败的原因 2.进程终止 2.1 进程退出场景 2.2 strerror函数—返回描述错误号的字符…

Hadoop学习指南:探索大数据时代的重要组成——Hadoop概述

前言 在当今大数据时代&#xff0c;处理海量数据成为了一项关键任务。Hadoop作为一种开源的分布式计算框架&#xff0c;为大规模数据处理和存储提供了强大的解决方案。本文将介绍Hadoop的组成和其在大数据处理中的重要作用&#xff0c;让我们一同踏上学习Hadoop的旅程。 Hado…

信用卡欺诈检测案例 -- 机器学习项目基础篇(2)

这个案例面临的挑战是识别欺诈性信用卡交易&#xff0c;以便信用卡公司的客户不会因为他们没有购买的物品而被收取费用。 信用卡欺诈检测中涉及的主要挑战是&#xff1a; 每天都要处理大量数据&#xff0c;模型构建必须足够快&#xff0c;以便及时响应骗局。不平衡的数据&…

Edge解决默认Bing搜索跳转到国内版的问题

近期BingGPT申请通过以后&#xff0c;每次用PC端Edge去跳转的时候不管是否念Proxy咒都会进入国内版本Bing&#xff0c;排查得到默认Bing参数如下 因此&#xff0c;在edge://settings/searchEngines内添加搜索引擎&#xff0c;具体参数如下&#xff1a; 搜索引擎&#xff1a;必应…

嵌入式硬件系统的基本组成

嵌入式硬件系统的基本组成 嵌入式系统的硬件是以包含嵌入式微处理器的SOC为核心&#xff0c;主要由SOC、总线、存储器、输入/输出接口和设备组成。 嵌入式微处理器 每个嵌入式系统至少包含一个嵌入式微处理器 嵌入式微处理器体系结构可采用冯.诺依曼&#xff08;Von Neumann&…

算法之快速排序

快速排序广泛应用的主要原因是高效&#xff0c;核心算法是分而治之。Java标准库中Arrays类的sort方法里源码也正是使用了优化后的快速排序。 原理 快速排序的核心思想是分治&#xff1a;选择数组中某个数作为基数&#xff0c;通过一躺排序将要排序的数据分割成独立的两部分&a…

第十三届蓝桥杯复盘及未来规划

2022年4月28日 第十三届蓝桥杯结果揭晓 面对这份成绩&#xff0c;心里有些沉重 qwq 心里五味杂陈 当看到距离省1只差4个名额&#xff0c;当看到清晰又刺眼的’二等奖‘&#xff0c;当看到社群里面好多小伙伴拿到了省1的同时分享着喜悦&#xff0c;当想起自己从12月中旬开始写算…

密码学的一些常识

1&#xff0c;对称密码、公钥密码、消息认证、数字签名的对比 对称密码公钥密码发送者共享秘钥加密公钥加密接收者共享秘钥解密私钥解密秘钥配送问题存在不存在&#xff0c;但需要CA认证公钥机密性√√ 消息认证数字签名发送者共享秘钥计算MAC使用私钥对文本HASH值做签名接收者…

Linux 常用命令(快速复习)

基础命令 linux只有一个顶级目录/ ls命令 功能&#xff1a;列出文件夹信息 语法&#xff1a; ls [-l -h -a] [参数] 参数&#xff1a;被查看的文件夹&#xff0c;不提供参数&#xff0c;表示查看当前工作目录 -l&#xff0c;以列表形式查看 -h&#xff0c;配合-l&#xff0c;以…

如何手写一个@Async异步注解

如何手写一个Async异步注解 一、自定义注解二、编写AOP切面类三、编写测试类四、总结 一、自定义注解 自定义一个MyAsync注解&#xff0c;可以照抄Async Target({ElementType.METHOD, ElementType.TYPE}) Retention(RetentionPolicy.RUNTIME) Documented public interface My…

【计算机视觉|人脸建模】深度学习时代的3D人脸重建调查报告

本系列博文为深度学习/计算机视觉论文笔记&#xff0c;转载请注明出处 标题&#xff1a;3D Face Reconstruction in Deep Learning Era: A Survey 链接&#xff1a;3D Face Reconstruction in Deep Learning Era: A Survey - PubMed (nih.gov) 摘要 随着深度学习的出现和图形…

ARM裸机-8

1、ARM的编程模式和工作模式 1.1、ARM的基本设定 ARM采用的是32位架构 ARM约定&#xff1a; - Byte&#xff1a;8 bits - Halfword &#xff1a;16 bits (2 byte) - Word&#xff1a;32 bits (4 byte) 大部分ARM core 提供&#xff1a; - ARM 指令集 (32-bit) - Thumb 指令集 …

TiProxy 原理和实现

说明 在上篇《TiProxy 尝鲜》 中做了一些实验&#xff0c;比如加减tidb节点后tiproxy可以做到自动负载均衡&#xff0c;如果遇到会话有未提交的事务则等待事务结束才迁移。 本次主要研究这样的功能在tiproxy中是如何实现的&#xff0c;本次分享内容主要为以下几部分&#xff…