【C 语言经典100例 | 菜鸟教程】C 语言练习实例3

数学建模 种群竞争模型 学习笔记 模型背景 应用场景 种群竞争模型 例如 s1=0.5,则表示对于供养甲的资源来讲,单位数量的乙的消耗为单位数量的甲的0.5倍,即表示乙对于该资源的占有能力是甲的0.5倍(即竞争力弱) 仿真结果及分析 (1)设置自然增长率 r1=r2=1 (2)改变自然增长率 r1=r2=0.3 (3)修改甲和乙的最大容量 n1=10000, n2=100 (4)修改甲和乙的初始数量 x1=10, x... 阅读详情

解题思路:

《菜鸟教程:C 练习实例3》程序分析:

假设该数为 x。
1、则:x + 100 = n^2, x + 100 + 168 = m^2
2、计算等式:m^2 - n^2 = (m + n)(m - n) = 168(平方差公式)
3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数
4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。
5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
6、由于 i * j = 168, j>=2,则 1 < i <= 168 / 2。

实际编写代码:

由于 i * j = 168, j>=2,则 1 < i <= 168 / 2。
因为 i * j =168,所以j = 168 / i,又因为j为整数,所以 168 % i == 0
因为 i * j =168,所以j = 168 / i
因为①m + n = i,②m - n = j,①+② 可得 2m = i+j,所以m=(i+j)/2
因为①m + n = i,②m - n = j,①-② 可得 2n = i-j,所以n=(i-j)/2
因为 x + 100 = n^2, x + 100 + 168 = m^2 ,所以 x = n^2 - 100
因为 x + 100 = n^2, x + 100 + 168 = m^2 ,所以 x = m^2 - 268
只考虑一种单调性,因为 n^2 > 0,即 |n| > 0 ,所以n = ±√(x+100) ,即n关于y轴(或x轴)是对称的,n^2会重复出现2次
必须:x = n^2-100 且 x = m^2 - 268

参考资料:《菜鸟教程:C 练习实例3》https://www.runoob.com/cprogramming/c-100-examples.html

L3.h

//
// C
reated by crazy_pig on 2022/8/30.
// References from : https://www.runoob.com/cprogramming/c-100-examples.html
//

#ifndef CTEST100_L3_H
#define CTEST100_L3_H

#endif //CTEST100_L3_H

#include <stdio.h>
#include <math.h>
#include <time.h>

void L3();

L3.c

//
// Created by crazy_pig on 2022/8/30.
// References from : https://www.runoob.com/cprogramming/c-100-examples.html
//

#include "../include/L3.h"

/**
* 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
* 程序分析:
* 假设该数为 x。
* 1、则:x + 100 = n^2, x + 100 + 168 = m^2
* 2、计算等式:m^2 - n^2 = (m + n)(m - n) = 168(平方差公式)
* 3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数
* 4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。
* 5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
* 6、由于 i * j = 168, j>=2,则 1 < i <= 168 / 2。
* 7、接下来将 i 的所有数字循环计算即可。
*/
void L3() {
    printf("\nLesson 3 :\n");

    time_t start_time, end_time;
    double time_diff;
    time(&start_time);

    // 由于 i * j = 168, j>=2,则 1 < i <= 168 / 2。
    for (int i = 2; i <= 168 / 2; i++) {
        // 因为 i * j =168,所以j = 168 / i,又因为j为整数,所以 168 % i == 0
        if (168 % i == 0) {
            // 因为 i * j =168,所以j = 168 / i
            int j = 168 / i;
            // 因为①m + n = i,②m - n = j,①+② 可得 2m = i+j,所以m=(i+j)/2
            int m = (i + j) / 2;
            // 因为①m + n = i,②m - n = j,①-② 可得 2n = i-j,所以n=(i-j)/2
            int n = (i - j) / 2;
            // 因为 x + 100 = n^2, x + 100 + 168 = m^2 ,所以 x = n^2 - 100
            double x1 = pow(n, 2) - 100;
            // 因为 x + 100 = n^2, x + 100 + 168 = m^2 ,所以 x = m^2 - 268
            double x2 = pow(m, 2) - 268;
            // 只考虑一种单调性,因为 n^2 > 0,即 |n| > 0 ,所以n = +-√(x+100) ,即n关于y轴(或x轴)是对称的,n^2会重复出现2次
            if (n > 0) {
                //必须:x = n^2-100 且 x = m^2 - 268
                if (x1 == x2) {
                    printf("当这个数是%.0lf时:%.0lf + 100 = %d^2 , %.0lf + 268 = %d^2\n",
                           x1, x1, n, x1, m);
                }
            }
        }
    }

    time(&end_time);
    time_diff = difftime(end_time, start_time);
    printf("程序开始时间:%ld,程序结束时间:%ld,程序执行耗时:%f(s)", start_time, end_time, time_diff);
}

Result:

L3-Result

【OCPP】ocpp1.6J协议框架说明 本文档的目的是为读者提供创建正确的可互操作 OCPP JSON 实现 (OCPP-J) 所需的信息。我们将根据我们自己的经验,尝试解释什么是强制性的、什么是良好做法以及什么是不应该做的。毫无疑问,误解或歧义仍然存在,但我们旨在通过本文件尽可能地防止它们。IANA:互联网数字分配机构(OCPP-J:使用JSON通过WebSocket进行OCPP通信。特定的OCPP版本应使用J扩展进行指示。OCPP1.5J表示我们正在讨论1.5版本的JSON/WebSocket实现。 阅读详情

相关推荐

SQL Server2008详细安装步骤(超详细步骤)

https://pan.baidu.com/s/1yvolqfU-AbiuGrIzblA7pA 提取码:lzw81.下载好安装包后解压到除C盘以外的磁盘,避免系统卡顿2.使用管理员身份打开安装程序注意:使用管理员身份打开时,此时如果显示以下画面属于正常现象,下载安装即可。因为.net现在有很多软件都需要,包括SQLSERVER2008,它里面有visual studio都要有net,电脑系统没有的话安装一下好了。3.选择全新安装或向现有安装添加新功能4.点击确定5.出现以下画面之后,输入产品密钥即可(密钥在

m0_67402774的博客 4万+

C语言:菜鸟教程经典100例题(1-50)

C语言经典100例 注:以下答案与原文不完全相同 实例1 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #include <stdio.h> int main(void) { int i, j, k; int n = 0; for (i = 1; i < 5; i++) { for (j = 1; j < 5; j++) { for (k = 1; k < 5; k++) { if (i != j &amp

fwt1226的博客 1万+

Office LTSC 2021/2024专业部署:ODT+config.xml标准化实战

Office部署本质上是企业终端软件生命周期管理的关键环节,其核心原理在于通过声明式配置驱动安装、激活与组件裁剪。Office Deployment Tool(ODT)作为微软官方命令行引擎,配合config.xml这一DSL契约文件,实现可版本控制、可审计、可回滚的自动化交付。该方案技术价值突出体现在稳定性保障(如LTSC长期支持通道)、合规性强化(不绕过授权机制)及运维提效(批量部署、离线支持)。典型应用场景覆盖教育机房批量装机、政企终端标准化、医疗HIS工作站部署等对功能冻结与系统确定性要求严苛的环境

diaocuiguo2493的博客 558

【C 语言经典100例 | 菜鸟教程】C 语言练习实例1

【代码】【C 语言经典100例 | 菜鸟教程】C 语言练习实例1。

crazy_rays的专栏 806

Comsol超声空化气泡仿真:从基础理论到工业应用实践

本文详细介绍了Comsol超声空化气泡仿真的基础理论及工业应用实践。通过解析超声空化现象、Comsol模型搭建流程及求解器优化技巧,帮助工程师掌握气泡仿真技术,提升超声波清洗和乳液制备等工业应用的效率与质量。

weixin_27966471的博客 250

Duplicate Cleaner Pro 5.16 保姆级教程:如何用哈希值精准清理重复文件(附音频/视频模式详解)

本文详细介绍了Duplicate Cleaner Pro 5.16如何利用哈希值技术精准清理重复文件,特别针对音频、视频和图片等多媒体文件提供了专业解决方案。通过哈希算法比对和多媒体特征识别,帮助用户高效管理存储空间,提升文件整理效率。

weixin_27032989的博客 564

C 练习2

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> /* 题目:企业发放的奖金根据利润提成。 利润(I)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%; 20万到40万之间时,高于20万元的部分,可提成5%; 40万到60万之间时高于40万元的.

weixin_41211961的博客 982

python-snap7 报错:can‘t find snap7 library. If installed, try running ldconfig

1、使用场景: Python 读取西门子 S7 系列 PLC 信息,会用到 snap7 库,网上也有很多案例。但是,运行时会报错:can't find snap7 library. If installed, try running ldconfig 2、解决方案: A、下载项目需要依赖的 dll、lib 文件: i、Sourceforge下载:https://sourceforge.net/projects/snap7/files/ ii、优快云下载(免费):https://dow.

蜡笔小新历险记的博客 3646

C语言经典例题(菜鸟教程100例)

学习c语言基础,怎么能少了菜鸟教程上的100道例题呢,这里整理一下每道题的链接,希望大家能享受学习的乐趣 1,有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 2,企业发放的奖金根据利润提成。其实就是考分类。 3,一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 4,输入某年某月某日,判断这一天是这一年的第几天? 5,...

zwish的信安之路 30万+

配置oem 13c以监控管理数据库

使用oem13c监控数据库

雅冰石的专栏 1808

MICROSAR OS:第一个task是如何执行起来的?

MICROSAR OS是Vector公司开发的符合AUTOSAR OS规范的实时操作系统。本文介绍MICROSAR

humu7733的博客 2568

【C语言|菜鸟教程】100道进阶经典例题详细解答(实例一)

本系列为C语言菜鸟100道基础经典例题详解刷题系列。每天1题,点滴成长,一起逆袭。注意认真审题。

weixin_62570686的博客 2048

浅谈声发射振动复合传感器

浅谈声发射振动复合传感器 随着全球经济和自动化工业的迅速发展,人们对设备故障特别是轴承类的故障诊断也日益重视起来了。 为满足客户对旋转仪器轴承异常的精准诊断,单一的依靠振动信号或声信号分析,是很难兼顾轴承的多种异常情况的。 为此,市面上开始着手研发出了可同时分析机械设备的振动信号和声信号的复合型传感器。 初期的复合型传感器主要有 2 种类型,下面以 A、B 来举例说明。 A 型是在被测物表面不同的 2 个位置分别放置声发射(AE)传感器和加速度(ACC)传感器,它虽能一定程度...

pxtech的博客 1151

菜鸟教程-C语言经典100示例(前50)

这两天正在看基础的算法,在做的时候肯定不能避免的接触了菜鸟上的经典100例,但是使用的时候发现并不是那么的方便,因为它只是给了序号,如果查找某一问题的话很不方便,所以做了这篇博客,希望给自己和其他人带来帮助! 1,有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 2,企业发放的奖金根据利润提成。其实就是考分类。 3,一个整数,它加上100后是一个完全平方数,再加上...

zlhcsm的博客 6万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C语言经典100例-第一篇

题目来自菜鸟教程,所写内容,如有问题,还请见谅。

2301_77118121的博客 2077

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C语言经典100例(1-20)

此文为本人在练习 菜鸟教程C语言经典100例 时所写的部分代码记录(1~20) #include&amp;lt;stdio.h&amp;gt; int main(void) { int i,j,k; for(i = 1;i &amp;lt; 5;i++) { for(j = 1;j &amp;lt; 5;j++) { if(i == j) ...

DeadBeef 2703

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C语言学习-菜鸟教程C经典100例-练习3

本文探讨了寻找满足特定条件的整数问题:一个整数加上100是完全平方数,再加上168又是完全平方数。通过数学推导,将问题转化为求解方程n²-m²=168,并分析了i,j的奇偶性和取值范围。提供了三种解法:1) 基于i,j的因式分解法;2) 暴力遍历x的方法;3) 遍历m的高效方法。代码实现展示了每种方法的求解过程,最终得出四个符合条件的解:-99、21、261和1581。这些解都验证了原始条件,体现了不同解题思路的有效性。

2301_77670476的博客 1295

C语言:菜鸟教程经典100例题(51-80)

C语言经典100例 注:以下答案与原文不完全相同 实例1-50 实例51 - 与& // Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include <stdio.h> int main() { int a, b; a = 077; b = a & 3; printf("a & b(decimal) 为 %d \n", b)

fwt1226的博客 2163

C语言学习-菜鸟教程C经典100例-练习24

本文介绍了C语言练习题目:计算斐波那契分数序列前20项之和。该序列分子分母均为斐波那契数列,分子从2开始,分母从1开始。通过循环计算,每次迭代更新分子为前两项之和,分母为前一项分子,并累加各项分数。最终输出结果显示前20项之和为32.660263。代码简洁高效,展示了斐波那契数列的典型应用。

2301_77670476的博客 1210

一起刷C语言菜鸟教程100题(15-26含解析)

五一过的好快,五天假期说没就没,因为一些事情耽搁到现在,不过还是要继续学习的,之后就照常更新,先说一下,这个100题是菜鸟教程里面的,但是有一些题,我加入了自己的理解,甚至对有一些题进行了改编,目的是让大家更顺手一点,链接放在下面,需要的小伙伴可以点进去看看,话不多说,开始刷题。求第一天共摘了多少。解题思路:这类画图题一般都是找规律的题目,我们可以把菱形拆解成上三角和下三角,我们发现上三角形每一行 * 前面的空格都是逐渐递减,而 * 是逐渐递增的,下三角形的空格逐渐递增, * 逐渐递减,就可以完成代码了。

2302_81032013的博客 2272

C语言经典100例(21-40)

此文为本人在练习菜鸟教程C语言经典100例时所写的部分代码记录(21~40) 网址为: http://www.runoob.com/cprogramming/c-100-examples.html #include&lt;stdio.h&gt; int main(void) { int i,x = 1; for(i = 0; i &lt; 9; i++) { ...

DeadBeef 731

C语言学习-菜鸟教程C经典100例-练习32

C语言删除字符串中指定字符的实现方法 本文介绍了三种在C语言中删除字符串中指定字符的实现方式: 基础实现:通过遍历字符串,将非目标字符复制到新数组中,最后添加字符串结束符。 函数封装(数组索引):将删除操作封装为函数,使用数组索引方式实现。 函数封装(指针):使用指针操作实现同样的功能。 每种方法都包含完整的代码示例和输出结果,展示了如何从用户输入中读取字符串和目标字符,处理后输出结果字符串。这些方法适用于初学者理解字符串处理和字符操作的基本概念。

2301_77670476的博客 2190

C 语言经典100例(菜鸟在线工具)

C 语言经典100例

学习 记录 总结 分享 1719

C语言经典100例(81-100)

此文为本人在练习菜鸟教程C语言经典100例时所写的部分代码记录(81~100) 网址为: http://www.runoob.com/cprogramming/c-100-examples.html #include&lt;stdio.h&gt; #include&lt;math.h&gt; int OtoD(int n) { int sum = 0; int i = ...

DeadBeef 3303

C语言经典例题(菜鸟教程100例)_菜鸟教程c语言100例

3,一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?4,输入某年某月某日,判断这一天是这一年的第几天?5,输入三个整数X,Y,Z,请把这三个数由小到大输出。6,用*号输出字母Ç的图案。7,输出特殊图案。8,输出9 * 9口诀。9,要求输出国际象棋棋盘。10,打印楼梯,同时在楼梯上方打印两个笑脸。11,古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个

2401_87251447的博客 1591

C语言经典100例(61-80)

此文为本人在练习菜鸟教程C语言经典100例时所写的部分代码记录(61~80) 网址为: http://www.runoob.com/cprogramming/c-100-examples.html #include&lt;stdio.h&gt; int main(void) { int i, j; int a[10][10]; for(i = 0; i &lt; ...

DeadBeef 1394
上一篇: 【C 语言经典100例 | 菜鸟教程】C 语言练习实例2
下一篇: 【C 语言经典100例 | 菜鸟教程】C 语言练习实例4
相信光的疯子
博客等级 码龄18年 91粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值