C语言老题新解第1-5题
文章目录
- 1 互不相同且无重复数字
- 2 企业利润提成
- 3 两个完全平方数
- 4 判断一年的第几天
- 5 三个整数比较大小
1 互不相同且无重复数字
1 有1, 2, 3, 4四个数字,能组成多少互不相同且无重复数字的三位数?都是多少?
最简单当然是三重循环嵌套在一起就完事儿了,但我患有重度循环恐惧症,看到三个for叠在一起容易吓尿裤子,所以换种递归的写法,尽管看上去不太划算,但如果把问题变成1234567组成不重复的6位数字,可能效果就会显现出来。
#include<stdio.h>
int hasSameNum(int i, int j){while(i>0){if(i%10==j)return 1;i /= 10;}return 0;
}int getNum(int i, int iMax, int jMax){if(i>iMax){printf("%d\n", i);return 1;}int N=0;for(int j=1; j<=jMax; j++){if(hasSameNum(i,j))continue;N += getNum(i*10+j, iMax, jMax);}return N;
}int main()
{int N = getNum(0, 100, 4);printf("总共%d个数\n", N);
}
运行结果为
>gcc test.c
>a.exe
123
124
132
134
142
143
213
214
231
234
241
243
312
314
321
324
341
342
412
413
421
423
431
432
总共24个数
2 企业利润提成
2 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按 10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
#include<stdio.h>
int main()
{int i;scanf("%d",&i);double bonus = 0;int level[6] = {0, 10, 20, 40, 60, 100};double rate[6] = {0.1, 0.075, 0.05, 0.03, 0.015, 0.01};for(int j=0; j<6; j++){if(i < level[j+1]){bonus += rate[j]*(i-level[j]);break;}bonus += rate[j]*level[j+1];}printf("奖金=%f万",bonus);
}
3 两个完全平方数
3 一个整数,加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
解:即x+100=a2;x+268=b2→b2−a2=168x+100=a^2;\quad x+268=b^2\to b^2-a^2=168x+100=a2;x+268=b2→b2−a2=168。
记b=a+Nb=a+Nb=a+N,则b2−a2=(a+N)2−a2=N2+2a=168b^2-a^2=(a+N)^2-a^2=N^2+2a=168b2−a2=(a+N)2−a2=N2+2a=168。
由于N,aN,aN,a都为正整数,故有N2<168;2a<168N^2<168; 2a<168N2<168;2a<168,即a<74,N<13a<74, N<13a<74,N<13。
#include<stdio.h>
#include<math.h>
int main()
{int a, b, x;for(a=0; a<74; a++)for(b=a; b<a+13; b++){if(b*b-a*a!=168)continue;x = a*a-100;if(x>0){printf("x=%d\n", a*a-100);printf("%d+100=%d^2\n", x, a);printf("%d+268=%d^2\n", x, b);return 0; //如果觉得有多组解,可以不在这里return}}printf("本问题无解");return 0;
}
结果为
>a.exe
x=21
21+100=11^2
21+268=17^2
4 判断一年的第几天
4 输入某年某月某日,判断这一天是这一年的第几天?
解
以a月b日来说,作为一年中的第几天而言,可分解为a月之前的天数+b。
365/12≈30.42365/12\approx30.42365/12≈30.42,即平均每个月为30.42天,但由于每个月天数并不统一,所以在计算之后,对于个别月份还要增减。
对于非闰年而言,记等iii个月份之前的最后一天对应每年的第nnn天,则i,ni,ni,n的对应关系为
| i | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| n | 31 | 59 | 90 | 120 | 151 | 181 | 212 | 243 | 273 | 304 | 334 |
| 30.42(i−1)30.42(i-1)30.42(i−1) | 30 | 60 | 91 | 121 | 152 | 182 | 212 | 243 | 273 | 304 | 334 |
发现1月需要+1;2,3,4,5,6月需要-1
1.程序分析:以3 月5 日为例,应该先把前两个月的加起来,
然后再加上5 天即本年的第几天,特殊
情况,闰年且输入月份大于3 时需考虑多加一天。
2.程序源代码:
#include<stdio.h>
int main()
{int day,month,year,sum,leap;scanf("%d %d %d",&year,&month,&day);sum = (month-1)*30.5;switch(month){case 1: sum=0; break;case 2: sum=31; break;case 3: case 4: case 5: case 6: case 7:sum = (month-1)*30.42+1;break;case 8: case 9: case 10: case 11: case 12:sum = (month-1)*30.42;break;default:printf("输入有误");break;}sum=sum+day;//闰年判定int isLeap = year%400==0||(year%4==0&&year%100!=0);if(leap==1&&month>2)sum++;printf("您输入了%d年的第%d天",year,sum);return 0;
}
结果为
>a.exe
2022 12 1
您输入了2022年的第335天
5 三个整数比较大小
5 输入三个整数x,y,z,请把这三个数由小到大输出。
无非是比大小,但我有多余变量恐惧症,写习惯了a,b=b,a,非得让我新建个中间变量那不得难受死,所以下面用异或交换法。
#include<stdio.h>
int main()
{int x,y,z;scanf("%d%d%d",&x,&y,&z);if (x > y){x=x^y; y=y^x; x=x^y;} /*交换x,y 的值*/if(x > z){x=x^z; z=z^x; x=x^z;}/*交换x,z 的值*/if(y > z){y=y^z; z=z^y; y=y^z;}/*交换z,y 的值*/printf("%d<%d<%d\n",x,y,z);
}
效果如下
>gcc test5.c
>a.exe
2 5 3
2<3<5
相关文章:
C语言老题新解第1-5题
文章目录1 互不相同且无重复数字2 企业利润提成3 两个完全平方数4 判断一年的第几天5 三个整数比较大小1 互不相同且无重复数字 1 有1, 2, 3, 4四个数字,能组成多少互不相同且无重复数字的三位数?都是多少? 最简单当然是三重循环嵌套在一起…...
【数据库系列】MQSQL历史数据分区
互联网行业企业都倾向于mysql数据库,虽说mysql单表能支持亿级别的数据量,加上索引优化下查询速度,勉强能使用,但是对于追求性能和效率的互联网企业,这是远远不够的。Mysql数据库单表数据量到达500万左右,达…...
MyBatis常用的俩种分页方式
1、使用 limit 实现分页 select * from xxx limit m,n # m 表示从第几条数据开始,默认从0开始 # n 表示查询几条数据 select * from xxx limit 2,3 # 从索引为2的数据开始,往后查询三个。2、3、4 (1) 创建分页对象,用来封装分页的数据 PS…...
RPC通信原理解析
一、什么是RPC框架? RPC,全称为Remote Procedure Call,即远程过程调用,是一种计算机通信协议。 比如现在有两台机器:A机器和B机器,并且分别部署了应用A和应用B。假设此时位于A机器上的A应用想要调用位于B机…...
【蓝桥杯集训·周赛】AcWing 第93场周赛
文章目录第一题 AcWing 4867. 整除数一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解第二题 AcWing 4868. 数字替换一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解第三题 AcWing 4869. 异或值一、题目1、原题…...
蓝桥杯-刷题统计
蓝桥杯-刷题统计1、问题描述2、解题思路3、代码实现3.1 方案一:累加方法(超时)3.2 方案二1、问题描述 小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目, 周六和周日每天做 b 道题目。请你帮小明计算, 按照计划他将在 第几天实现做题数…...
Linux入门教程||Linux Shell 变量|| Shell 传递参数
Shell 变量 定义变量时,变量名不加美元符号($,PHP语言中变量需要),如: your_name"w3cschool.cn"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一…...
[算法和数据结构]--回溯算法之DFS初识
回溯算法——DFSDFS介绍(Depth First Search)DFS经典题目1. 员工的重要性2. 图像渲染3.被围绕的区域4.岛屿数量5. 电话号码的字母组合6.数字组合7. 活字印刷8. N皇后DFS介绍(Depth First Search) 回溯法(back tracking)(探索与回溯法&#x…...
【LeetCode每日一题】——680.验证回文串 II
文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 贪心算法 二【题目难度】 简单 三【题目编号】 680.验证回文串 II 四【题目描述】 给你一个字…...
【C语言进阶:指针的进阶】你真分得清sizeof和strlen?
本章重点内容: 字符指针指针数组数组指针数组传参和指针传参函数指针函数指针数组指向函数指针数组的指针回调函数指针和数组面试题的解析这篇博客 FLASH 将带大家一起来练习一些容易让人凌乱的题目,通过这些题目来进一步加深和巩固对数组,指…...
【前端必看】极大提高开发效率的网页 JS 调试技巧
大家好,我是前端西瓜哥。本文讲解如何使用浏览器提供的工具进行 JS 代码的断点调试。 debugger 在代码中需要打断点的地方,加上 debugger,表示一个断点。浏览器代码执行到该位置时,会停下来,进入调试模式。 示例代码…...
【春招面经】视源股份前端一面
前言 本次主要记录一下视源股份CVTE前端一面 (3.3下午4点15) 文章目录前言本次主要记录一下视源股份CVTE前端一面 (3.3下午4点15)问题总结介绍一下项目的来源以及做这个项目的初衷一直监听滚动,有没有对性能产生影响&a…...
插件化开发入门
一、背景顾名思义,插件化开发就是将某个功能代码封装为一个插件模块,通过插件中心的配置来下载、激活、禁用、或者卸载,主程序无需再次重启即可获取新的功能,从而实现快速集成。当然,实现这样的效果,必须遵…...
tftp、nfs 服务器环境搭建
目录 一、认识 tftp、nfs 1、什么是 tftp? 2、什么是 nfs? 3、tftp 和 nfs 的区别 二、tftp的安装 1、安装 tftp 服务端 2、配置 tftp 3、启动 tftp 服务 三、nfs 的安装 1、安装 nfs 服务端 2、配置 nfs 3、启动 nfs 服务 一、认识 tftp、…...
汇编系列03-不借助操作系统输出Hello World
每天进步一点点,加油! 上一节,我们通过汇编指令,借助操作系统的系统调用实现了向标准输出打印Hello world。这一节我们打算绕过操作系统,直接在显示屏幕上打印Hello world。 计算机的启动过程 当我们给计算机加电启…...
TPU编程竞赛系列|算能赛道冠军SO-FAST团队获第十届CCF BDCI总决赛特等奖!
近日,第十届中国计算机学会(CCF)大数据与计算智能大赛总决赛暨颁奖典礼在苏州顺利落幕,算能赛道的冠军队伍SO-FAST从2万余支队伍中脱颖而出,获得了所有赛道综合评比特等奖! 本届CCF大赛吸引了来自全国的2万…...
【C++】AVL树,平衡二叉树详细解析
文章目录前言1.AVL树的概念2.AVL树节点的定义3.AVL树的插入4.AVL树的旋转左单旋右单旋左右双旋右左双旋AVL树的验证AVL树的删除AVL树的性能前言 前面对map/multimap/set/multiset进行了简单的介绍,在其文档介绍中发现,这几个容器有个共同点是࿱…...
C/C++开发,无可避免的多线程(篇四).线程与函数的奇妙碰撞
一、函数、函数指针及函数对象 1.1 函数 函数(function)是把一个语句序列(函数体, function body)关联到一个名字和零或更多个函数形参(function parameter)的列表的 C 实体,可以通过返回或者抛…...
elisp简单实例: taglist
从vim 转到emacs 下,一直为缺少vim 中的tablist 插件而感到失落. 从网上得到的一个emacs中的taglist, 它的功能很简陋,而且没有任何说明, 把它做为elisp的简单实例,供初学者入门倒不错,我给它加了很多注释,帮助理解, 说实话,感觉这百行代码还是挺有深度的,慢慢体会,调试才会有收…...
Azure AI基础到实战(C#2022)-认知服务(3)
目录 OpenFileDialog 类上一节代码的API剖析ComputerVisionClientExtensions.ReadAsync MethodReadHeaders ClassReadHeaders.OperationLocation Property探索ReadHeaders加上调试代码可用于 Azure 认知服务的身份验证标头使用单服务订阅密钥进行身份验证使用多服务订阅密钥进行…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...
