C语言水平测试题 过关斩将(3)辗转相除法,前n项求和,整数的正序分解,求最大公约数

news2025/9/18 21:52:41

我的个人主页☆光之梦☆的博客_CSDN博客-C语言基础语法(超详细)领域博主

欢迎各位 👍点赞 ⭐收藏 📝评论

我的专栏C语言基础语法(超详细)_☆光之梦☆的博客-CSDN博客(这个专栏里的平均文章质量分是95噢,基本全都是高质量文章,本博主将会长期更新c语言的语法知识,初学c语言的朋友们,可以收藏订阅一下,收藏绝对不亏噢)

目录

一、前n项求和

【题型1】 

【题型2】 

二、求最大公约数

方案1——枚举

方案2——辗转相除法

三、正序分解整数


下列是:C语言水平测试题(3)

大家冲鸭!

一、✨前n项求和✨

 输入一个数,求这个数的前n项和

 

🎇【题型1】 🎇

用户输入一个整数n,请求出这个数从1到n的倒数之和的值,并打印输出

具体要求如下图: 

 代码实现示例:

#include <stdio.h>

int main()
{
	int n; // n用于存储用户输入的值
	int i; // i用于循环计数
	double sum = 0.0; // sum用于存储计算的和的结果
	
    // 用户输入
	printf("请输入您要计算的前n项和的n:");
	scanf("%d",&n);

    // 求前n项和
    // 从1循环递增到n。在每次循环中,1.0/i的值被加到sum中
	for (i = 1; i <= n; i++){
		sum += 1.0/i;
	}
	
    // 输出结果
	printf("f(%d)=%f\n",n,sum);
	return 0;
}

 核心代码块:

🎇【题型2】 🎇

用户输入一个整数n,请计算出从1到n的交替和,并将结果输出

注:其中每一项的正负号会交替改变

 代码实现示例:

#include <stdio.h>

int main()
{
	int n; // n用于存储用户输入的值
	int i; // i用于循环计数
	double sum = 0.0; // sum用于存储计算的和的结果
	int sign = 1; // sign用于标记每一项的正负号,初始值为1 正
	
    // 用户输入
	printf("请输入您要计算的前n项和的n:");
	scanf("%d",&n);

    // 循环计算从1到n的交替和
	for (i = 1; i <= n; i++){
        // sign用于标记正负号,通过乘以sign实现每一项正负号的交替
	    sum += sign*1.0/i;
        // 在每次循环结束时,sign会取反,使下一次循环的正负号相反
        sign = -sign;
	}
	
    // 输出
	printf("f(%d)=%f\n",n,sum);
	return 0;
}

核心代码块:

double sum = 0.0;
int sign = 1;

for (i = 1; i <= n; i++){
		sum += sign*1.0/i;
       sign = -sign;
	}

二、✨求最大公约数✨

需求:

输入两个数 a 和 b,输出它们的最大公约数

输入:1218

输出:6

 

🎇方案1——枚举🎇        

坏处:效率不高

图例:

🎇方案2——辗转相除法🎇

辗转相除法

  1. 如果 b 等于 0,计算结束,a 就是最大公约数;

  2. 否则,计算 a 除以 b 的余数(a % b),让 a 等于 b,而 b 等于那个余数;

  3. 回到第一步

ab余数
121812
18126
1260
60

代码实现示例:

#include <stdio.h>
//辗转相除法 
int main()
{ 
	//计算a与b的最大公约数 
    // 定义两个变量a和b,用来存储输入的两个整数
	int a,b;

    // 定义一个变量t,用来存储余数
	int t;

	//scanf("%d %d",&a,&b);
	a = 12;b=18;

    // 当b不等于0时,将两个数的差值更新为较小的数与余数的差值
    // 直到余数为0,此时较小的数即为最大公约数
	while (b != 0) {
		t = a % b;
		a = b;
		b = t;
	}
	printf("最大公约数(gcd)=%d\n",a);// 6
	return 0;
}

三、✨正序分解整数✨

正序分解整数

输入一个非负整数,正序输出它的每一位数字输入:13425 输出:1 3 4 2 5

代码实现示例:

#include <stdio.h>

int main()
{
	int x;
	//scanf("%d",&x);
	
	x = 13425;

	int mask = 1;
	int t = x;
	while (t > 9) {
		t /= 10;
		mask *= 10;
	}
	printf("x=%d,mask=%d\n",x,mask);
	do{
		int d = x / mask;
		printf("%d",d);
		if(mask > 9){
			printf(" ");
		}
		x %= mask;
		mask /= 10;
	}while (mask > 0);
	printf("\n");
	return 0;
}

各位学习C语言的初学者,如果有问题随时都可以来问我,我会随时为您解答!欢迎大家与我一起学习,互相进步。

我的C语言专栏:C语言基础语法(超详细)_☆光之梦☆的博客-CSDN博客

创作不易,👍 +⭐ +📝(一键三连) 是对博主最大的鼓励与支持哦。

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

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

相关文章

Linux 部署 GitLab idea 连接

概述 GitLab 是一个开源的代码管理平台&#xff0c;使用 Git 作为版本控制工具&#xff0c;提供了 Web 界面和多种功能&#xff0c;如 wiki、issue 跟踪、CI/CD 等。 GitLab 可以自托管或使用 SaaS 服务&#xff0c;支持多种操作系统和执行器。 GitLab 可以帮助软件开发团队…

有 AI,无障碍,AIoT 设备为视障人群提供便利

据世界卫生组织统计&#xff0c;全球共 22 亿人视力受损&#xff0c;包含 2.85 亿视障人群和 3,900 万全盲人群。而且&#xff0c;这一数字将随老龄化加剧不断增加。 虽然视障人群面临着诸多不便&#xff0c;但是针对视障人群的辅助设备却存在成本高、维护困难、操作复杂等问题…

小流域洪水分析模拟预报设计及代码实现

应用说明&#xff1a; 利用无人机、卫星等技术&#xff0c;获取小流域洪水模拟分析所需的数据&#xff0c;并将其与模型进行结合&#xff0c;提高模拟精度&#xff1b; 探索小流域洪水模拟分析与城市规划、土地利用等方面的关系&#xff1b; 小流域河流洪水模拟计算分析是一项…

Java编程第9讲——CountDownLatch、CyclicBarrier和Semaphore(万字详解)

在JDK的并发包&#xff08;JUC&#xff09;里提供了几个非常有用的并发工具类。CountDownLatch、CyclicBarrier和Samaphore工具类提供了一种并发流程控制的手段&#xff0c;这同样也是面试和工作中的一个重要知识点&#xff0c;本文将从它们的定义、常用方法、代码示例及核心源…

STM32Cube高效开发教程<基础篇>(一)----概述

一、 STM32系列器件和开发工具发展历史 1.1 开发工具发展史 2014年HAL/LL库和STM32Cube是ST公司STM32Cube计划的产物,旨在提高开发效率。2019年4月,ST公司退出自己的IDE软件STM32CubeIDE,完善了STM32Cube生态系统。 1.2 STM32系列器件 1.3 器件驱动库 标准外设库( Standar…

Python Django 之连接 Mysql 数据库详解

文章目录 1 概述1.1 Mysql 下载和安装1.2 菜单目录 2 ORM 框架2.1 连接 Mysql 模块&#xff1a;mysqlclient2.2 创建数据库2.3 连接 Mysql2.4 创建表2.5 增删改查 3 扩展3.1 ERROR&#xff1a;2026, SSL connection error: unknown error number 1 概述 1.1 Mysql 下载和安装 …

windows安装nvm

源代码 下载 下一步一下步安装即可 检查是否安装成功 nvm出现上面的代码即可安装成功 常用命令 查看目前安装的node版本 nvm list [available]说明没有安装任何版本&#xff0c;下面进行安装 nvm install 18.14使用该版本 node use 18.14.2打开一个新的cmd输入node -…

Self-Instruct

本篇工作利用LLM的生成能力&#xff0c;来产生大量指令数据集&#xff08;指令、输入、输出&#xff09;&#xff0c;无需人工标注数据。 其中&#xff0c;在对任务判别的时候&#xff0c;需要区分是输出优先还是输入优先&#xff1a; 输入优先没问题&#xff0c;符合人类直觉…

面试题:说说Java线程的状态及转换

文章目录 为何要了解Java线程状态Java线程状态转换图Java线程有哪些状态&#xff1f;关于wait()放在while循环的疑问BLOCKED 和 WAITING 状态的区别和联系 为何要了解Java线程状态 线程是 JVM 执行任务的最小单元&#xff0c;理解线程的状态转换是理解后续多线程问题的基础。 …

加持智慧医疗,美格智能5G数传+智能模组让就医触手可及

智慧医疗将云计算、物联网、大数据、AI等新兴技术融合赋能医疗健康领域&#xff0c;是提高医疗健康服务的资源利用效率&#xff0c;创造高质量健康医疗的新途径。《健康中国2030规划纲要》把医疗健康提升到了国家战略层面&#xff0c;之后《“十四五”全面医疗保障规划》等一系…

最新AI写作创作系统源码ChatGPT源码,支持AI绘画/支持OpenAI-GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统&#xff0c;支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…

池州市的城市环境融合:OLED透明拼接屏展现自然与现代的完美结合

池州是中国安徽省的一个地级市&#xff0c;位于该省的西南部。池州市辖区包括贵池区、东至县、石台县、青阳县等地。 池州市拥有悠久的历史和丰富的文化遗产&#xff0c;同时也以其独特的自然风光而闻名。 首先&#xff0c;让我们来了解一下池州的历史和景点。 池州的历史可…

【TS】笔记-TypeScript环境搭建

TypeScript与JavaScript比较 JavaScript是轻量级的解释性脚本语言&#xff0c;可嵌入到HTML页面中&#xff0c;在浏览器端执行。而TypeScript是JavaScript的超集&#xff0c;即包含JavaScript的所有元素&#xff0c;能运行javaScript的代码&#xff0c;并扩展了JavaScript的语…

竞赛选题 深度学习+opencv+python实现昆虫识别 -图像识别 昆虫识别

文章目录 0 前言1 课题背景2 具体实现3 数据收集和处理3 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数&#xff1a;2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 4 MobileNetV2网络5 损失函数softmax 交叉熵5.1 softmax函数5.2 交叉熵损失函数 6 优化器SGD7 学…

利达卓越:金融领域的变革者——利达卓越引领行业发展

在过去的几十年里,金融行业面临着经济不确定性、监管压力和竞争加剧等诸多挑战。与此同时,金融领域的迅速发展为行业带来了新的机遇。利达卓越精准地把握了这一机遇,利用先进的科技手段应对挑战。成为金融领域的变革者,引领着金融行业的发展。 利达卓越成立于2015年,至今已有8年…

【Docker】Harbor私有仓库与管理

搭建本地私有仓库 #首先下载 registry 镜像 docker pull registry#在 daemon.json 文件中添加私有镜像仓库地址 vim /etc/docker/daemon.json {"insecure-registries": ["192.168.220.101:5000"], #添加&#xff0c;注意用逗号结尾"registry-mi…

IDEA中创建Web工程流程

第一步&#xff1a;File--》New--》Project 第二步&#xff1a;填写信息&#xff0c;点击Create 第三步&#xff1a;点击File,点击Project Structure 出现该界面 选择相应的版本&#xff0c;这里我用jdk17&#xff0c;点击apply &#xff0c;点击ok 第三步&#xff1a;右键文件…

【C++】异常处理之throw、catch、try、局部资源管理、标准异常库

一、抛出异常 异常处理机制两个主要成分&#xff1a; 异常的鉴定与发出&#xff1b;异常的处理方式。 C通过throw表达式产生异常&#xff1a; inline void Triangular_iterator:: check_integrity() {if(_index>Triangular::max_elems){throw iterator_overflow(_index,…

打造炫酷效果:用Java优雅地制作Excel迷你图

摘要&#xff1a;本文由葡萄城技术团队原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 前言 迷你图是一种简洁而有效的数据可视化方式&#xff0c;常用于展示趋势和变化。它通常由一…

找单身狗2

一个数组中只有两个数字是出现一次&#xff0c;其他所有数字都出现了两次。编写一个函数找出这两个只出现一次的数字。 例如&#xff1a;有数组的元素是&#xff1a;1,2,3,4,5,1,2,3,4,6&#xff0c;只有5和6只出现1次&#xff0c;要找出5和6。 这里我们不妨回忆一下之前找单身…