###C语言程序设计-----C语言学习(8)## 斐波那契数列问题,素数问题,人数分配问题。

前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步。

 

 

  今天,我们主要分享三个问题如何用C语言去求解,1.斐波那契数列问题,2.素数列举问题,3.人数分配问题。

 

一.  斐波那契数列问题 

 

(1)问题叙述:斐波那契数列问题。输人正整数 n(1<=n<=46),输出斐波那契(Fibonacci)数列的前n项:1,1,2,3,5,8,13,·····,每行输出 5个。Fibonacci 数列就是满足任一项数字是前两项的和(最开始两项均定义为 1)的数列。

(2)问题分析:计算斐波那契数列时,从第 3 项开始,每一项的值就是前 2项的和。用两个变量存储最近产生的两个序列值,计算出新一项数据后,需要更新这两个变量的值。假定最开始两项分别用x1=1和x2=1表示,则新项x=x1+x2,然后更新x1和x2:x1=x2及x2=x,为计算下一个新项x作准备。题目要求输出n项,循环次数确定,可采用 for 语句。

(3)方法总结:迭代法也称辗转法,是一个不断从变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。迭代法是用计算机解决问题的一种基本方法,它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出新值。

(4)源程序:

#include <stdio.h>
int main()
{
	int i, n, x, x1, x2;  //x1和x2依次代表前两项,x表示其后一项 
	printf("Enter n:");   //提示输入所需输出项的个数 
	scanf("%d", &n);
	if (n<1||n>46)
	{
		printf("Invalid.\n");
	}
	else if (n==1)
	{
		printf("%10d", 1);  //n为1时输出1 
	}
	else
	{
		x1=1;
		x2=1;
		printf("%10d%10d", x1, x2);  //先输出前两项 
		for (i=3; i<=n; i++)  //循环输出n-2项 
		{
			x=x1+x2;    //计算新的一项 
			printf("%10d", x);
			if (i%5==0)
			{
				printf("\n");  //项数为5的倍数就换行 
			}
			//重新定义前两项 
			x1=x2;  
			x2=x;
		}
	}
	
	return 0;
 } 

 

 二.  素数问题

 

(1)问题叙述:素数问题。输人2个正整数 m和n(1<=m<=n<=500),输出m到n之间的全部素数,每行输出 10个。素数就是只能被 1 和自身整除的正整数,1 不是素数,2 是素数。

(2)问题分析:可参照之前发的博客(如何判断素数)。

(3)源程序:

#include <stdio.h>
#include <math.h>
int main()
{
	int count, i, k, flag, limit, m, n;  //flag表示是否为素数 
	printf("Enter m n:");
	scanf("%d %d", &m, &n);
	count=0;  //count记录素数的个数 
	if (m<1||n>500||m>n)
	{
		printf("Invalid.\n");
	}
	else 
	{
		for (k=m; k<=n; k++)
		{
			if (k<=1)
			{
				flag=0;
			}
			else if (k==2)
			{
				flag=1;
			}
			else
			{
				flag=1;
				limit=sqrt(k)+1;
				for (i=2; i<=limit; i++)
				{
					if (k%i==0)
					{
						flag=0;
						break;
					}
				}
			}
			if (flag==1)
			{
				printf("%6d", k);
				count++;
				if (count%10==0)  //count为10的倍数就换行 
				{
					printf("\n");
				}
			}
		}
	}
	
	return 0;
}

 

三.  搬砖问题 

 

(1)问题叙述:搬砖问题。某工地需要搬运砖块,已知男人一人搬 3 块,女人一人搬 2块,小孩两人搬1块。如果想用n人正好搬n块砖,问有哪些搬法。

(2)问题分析:用枚举的思路,枚举对象是男人、女人和小孩的人数,将其分别设为变量 men、women和 children,以总人数 men+women+children ==n 和搬砖总数 men *3+women *2+children/2==n为判定条件,变量的取值范围都是[0,n]。3 个变量在各自的取值范围内遍历,采用三重循环嵌套,找出所有满足条件的解。

(3)源程序:

#include <stdio.h>
int main()
{
	int children, cnt, men, n, women;
	printf("Enter n:");
	scanf("%d", &n);
	cnt=0;
	for (men=0; men<=n; men++)
	{
		for (women=0; women<=n; women++)
		{
			for (children=0; children<=n; children++)
			{
				if((men+women+children==n)&&(men*3+women*2+children*0.5==n))
				{
					printf("men=%d, women=%d, children=%d\n", men, women, children);
					cnt++;
				}
			}
		}
	}
	if (cnt==0)
	{
		printf("None!\n");
	}
	
	return 0;
 } 

 

感谢老铁的浏览,希望老铁可以一键三连加个关注,您的支持和鼓励是我前进的动力,后续会分享更多学习编程的内容。 

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图片怎么裁剪成想要的尺寸?教你快速图片裁剪的方法

图片怎么裁剪成想要的尺寸&#xff1f;图片裁剪属于我们日常生活中比较常见的图片处理方式了&#xff0c;不管是改变图片打下&#xff0c;还是需要将图片中一些不需要的部分裁减掉&#xff0c;都需要用到这个功能&#xff0c;除了使用软件之外&#xff0c;我们还可以通过在线裁…

【Django自学】Django入门:如何使用django开发一个web项目(非常详细)

测试机器&#xff1a;windows11 x64 python版本&#xff1a;3.11 一、安装Django 安装步骤非常简单&#xff0c;使用pip安装就行 pip install django安装完成之后&#xff0c;python的 Scripts 文件夹下&#xff0c;会多一个 django-admin.exe (管理创建django项目的工具)。…

超声波风速风向传感器的优势及应用

TH-WQX2随着科技的不断发展&#xff0c;传感器技术日益成为众多领域中不可或缺的一部分。其中&#xff0c;超声波风速风向传感器凭借其独特的优势&#xff0c;在气象、能源、环保等领域中发挥着越来越重要的作用。 首先&#xff0c;超声波风速风向传感器无需机械转动部件&#…

【Vue】2-10、Vue 组件

一、组件化开发 组件化开发指的是根据封装的思想&#xff0c;把页面上可重用的 UI 结构封装为组件&#xff0c;从而方便项目的开发和维护。 二、Vue 组件的组成 template&#xff1a;组件的模板结构script&#xff1a;组件的 JavaScript 行为style&#xff1a;组件的样式 &…

Vim实战:使用 Vim实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度&#xff0c;DP多卡&#xff0c;EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

C++提取ICO图标(PE文件资源提取)

最近需要写一个提取EXE或者DLL图标资源的功能, 网上找了很久, 要么功能不好用, 最后结果如下: 1.很多是加载为HICON句柄后转换为图片保存, 全损画质..., 2.后来找了个还能用的, 详见 https://github.com/TortoiseGit/TortoiseGit/blob/master/src/Utils/IconExtractor.cpp …

git远程仓库基本操作

目录 gitremote &#xff08;查看远程仓库&#xff09; git remote add [仓库名] [url] git clone [url]&#xff08;克隆远程仓库到本地&#xff09; git push [名][分支名]&#xff08;提交到远程仓库&#xff09;​编辑 git pull [名][分支名]从远程仓库拉取​编辑 注意操作…

opencv学习 特征提取

内容来源于《opencv4应用开发入门、进阶与工程化实践》 图像金字塔 略 拉普拉斯金字塔 对输入图像进行reduce操作会生成不同分辨率的图像&#xff0c;对这些图像进行expand操作&#xff0c;然后使用reduce减去expand之后的结果&#xff0c;就会得到拉普拉斯金字塔图像。 …

Java 代理详解

Java 代理详解 文章目录 Java 代理详解1. 代理模式2. 静态代理3. 动态代理3.1. JDK 动态代理机制3.1.1. 介绍3.1.2. JDK 动态代理类使用步骤3.1.3. 代码示例 3.2. CGLIB 动态代理机制3.2.1. 介绍3.2.2. CGLIB 动态代理类使用步骤3.2.3. 代码示例 3.3. JDK 动态代理和 CGLIB 动态…

SD-WAN和专线混合组网:企业出海网络解决方案

目前&#xff0c;有很多国内企业涉足海外业务&#xff0c;如跨境电商、游戏、社交网络、区块链等。都会使用海外服务器。同时&#xff0c;这些企业在国内还有自己的机房&#xff0c;IDC或者使用国内其他云厂商的机房。如果他们想要相互通信或传输数据该怎么办&#xff1f;在成本…

最小步数模型

AcWing 1107. 魔板 #include <bits/stdc.h> using namespace std;char g[2][4]; const int N 10; unordered_map<string, pair<char, string> > pre; unordered_map<string, int> d;void Set(string s) {for(int i0; i<4; i) g[0][i] s[i];for(in…

骨传导如何使用,跟传统耳机有什么不同吗?

骨传导耳机的使用方法跟传统耳机是一样的&#xff0c;都是通过蓝牙连接来使用&#xff0c;不同的是&#xff0c;有些骨传导耳机自带内存&#xff0c;可以当做MP3来使用&#xff01; 此外&#xff0c;骨传导耳机的佩戴方式和传声方式跟传统耳机也有所不同&#xff0c;首先骨传导…

2024年美赛赛前复习大纲

CC数模-优质解答 引言 数学建模是一个将数学理论和方法应用于解决现实世界问题的过程。在数学建模比赛中&#xff0c;学生需要运用自己的数学知识和技能&#xff0c;解决给定的复杂问题。这不仅是一次展示自己能力的机会&#xff0c;也是一次学习和成长的过程。随着比赛的临近…

网络安全03---Nginx 解析漏洞复现

目录 一、准备环境 二、实验开始 2.1上传压缩包并解压 2.2进入目录&#xff0c;开始制作镜像 2.3可能会受之前环境影响&#xff0c;删除即可 ​编辑 2.4制作成功结果 2.5我们的环境一个nginx一个php 2.6访问漏洞 2.7漏洞触发结果 2.8上传代码不存在漏洞 2.9补充&#…

elementUI中表单校验的清空校验以及手动校验

this.$refs.表单.clearValidate(),这个可以传入字符串或者字符串数组&#xff0c;字符串对应的是我们自定义的rule里面的属性名&#xff0c;rule的属性名对应的是el-form-item的prop。这个api目前遇到的场景是el-radio切换时v-if展示不同的表单内容&#xff0c;但是当有校验提示…

力扣931. 下降路径最小和

动态规划 思路&#xff1a; 假设 dp[i][j] 为坐标 (i, j) 的路径最小和&#xff1b;则 dp[i][j] 上一状态&#xff1a; dp[i - 1][j] &#xff08;上一行正上方&#xff09;dp[i - 1][j - 1]&#xff08;上一行的左侧&#xff09;dp[i - 1][j 1]&#xff08;上一行的右侧&…

9.SELinux

目录 1. 概述 1.1. 概念 1.2. 作用&#xff1a; 1.3. SELinux与传统的权限区别 2. SELinux工作原理 2.1. 名词解释 2.1.1. 主体&#xff08;Subject&#xff09; 2.1.2. 目标&#xff08;Object&#xff09; 2.1.3. 策略&#xff08;Policy&#xff09; 2.1.4. 安全上…

纯静态微信小程序水果商城

首页代码 <view class"container"><!-- 轮播图 --><view class"swiper-container"><swiper class"screen-swiper" indicator-dots"true" circular"true" autoplay"true" interval"300…

穷游网酒店数据采集与可视化分析与实现

摘 要 穷游网酒店数据采集与可视化分析大屏的背景是为了满足用户对酒店数据的需求以及提供数据洞察和决策支持。随着旅游业的快速发展&#xff0c;人们对酒店信息的需求日益增加&#xff0c;而穷游网作为一家专注于旅游信息的网站&#xff0c;拥有丰富的酒店数据资源。 这个大…

计算机缺失duilib.dll的5种解决方法,轻松解决dll报错问题

计算机系统中丢失duilib.dll这个特定的动态链接库文件可能会引发一系列运行问题&#xff0c;具体表现和影响范围会根据该dll文件在系统或应用程序中的功能角色而有所不同。通常情况下&#xff0c;duilib.dll是一个与用户界面设计和渲染相关的库文件&#xff0c;它的缺失可能导致…
最新文章