[C语言]典型例题:小蚂蚁爬橡皮筋、买汽水问题、导致单词块、菱形打印……

1、小蚂蚁爬橡皮筋问题

假设橡皮筋长4m,小蚂蚁从一端爬向另一端每天爬1m,且每爬了1m,橡皮筋会立马拉伸4m,在理想条件下,小蚂蚁需要爬多少天可以到达橡皮筋的另一端?

不仔细想,我们很可能认为小蚂蚁永远爬不完橡皮筋,实则不然;因为橡皮筋是均匀拉伸的,并不是一端延伸,也就是说小蚂蚁的位置信息在不断发生变化。直接看代码:

#include<stdio.h>
int main()
{int day = 0;double length = 4;//橡皮筋初始长度double position = 0;//小蚂蚁位置信息while (position < length){day++;position++;double n = position / length;拉伸前蚂蚁爬行所占橡皮筋长度的比例length += 4;position = n * length;//拉伸后小蚂蚁的位置信息}printf("%d\n", day);return 0;
}

 

2、买汽水问题

 假设一瓶汽水一元钱,喝完汽水后会有空瓶子,每两个空瓶子,可以换一瓶汽水,循环往复一共可以喝多少瓶汽水?

#include<stdio.h>
int main()
{int money = 0;scanf("%d", &money);int total = money;int empty = money;while (empty >= 2){total += empty / 2;//每两个空瓶换一瓶汽水empty = empty / 2 + empty % 2;}printf("%d\n", total);return 0;
}

 3、将一句话倒置,标点不逆置

比如:i like beijing.经过函数变为:beijing.i like(不是逆序)

#include<stdio.h>
#include<string.h>
void reverse(char* left, char* right)
{while (left < right){char tmp = *left;*left = *right;*right = tmp;left++;right--;}
}
int main()
{char arr[101] = { 0 };gets_s(arr);//逆序整个字符串char* left = arr;char* right = arr + strlen(arr) - 1;//起始位置地址加上字符串长度地址即时最后一个元素地址reverse(left, right);//逆序每个单词char* start = arr;//用每一个start表示第一个单词的起始位置while (*start!='\0'){char* end = start;//end表示每个单词结束,先让他从start开始while (*end != ' '&&*end!='\0'){end++;}reverse(start, end - 1);if(*end!='\0')end++;start = end;}printf("%s\n", arr);
}

4、最小公倍数

这个题有多种解法,在这里我就用我认为最简单的方法

#include<stdio.h>
int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);int x = 0;int m = a * b;while (x = a % b)//求最大公约数{a = b;b = x;}printf("%d\n", m / b);
}

5、打印菱形

这个题很显然是可以用暴力拆解去做的,但会显得很挫,我们可以把它拆解成两部分:上半部分和下半部分。

上半部分:空格数=line-1-i,星号数=2*i+1

下半部分:空格数=i+1,星号数=(line-i-1)*2-1

根据规律,写出相应代码:

#include<stdio.h>
int main()
{//上半部分int line = 0;scanf("%d", &line);int i = 0;for (i = 0; i < line; i++)//打印每一行{int j = 0;//每一行内容for (j = 0; j < line - 1 - i; j++){printf(" ");}for (j = 0; j < 2 * i + 1; j++){printf("*");}printf("\n");}//下半部分for (i = 0; i < line - 1; i++){int j = 0;for (j = 0; j <= i; j++){printf(" ");}for (j = 0; j < 2 * (line -1-i) - 1; j++){printf("*");}printf("\n");}return 0;
}

6、水仙花数的打印

什么是”水仙花数“?

也被称作超完全数字不变数、自恋数、字幂数,它是指一个n位数(n>=3),其每个位上那个数字的n次幂之和等于他本身。比如:153就是一个水仙花数,因为3^3+5^3+1^3=153。

在这里我们推广到所有自然数集。

#inclde<stdio.h>
#include<math.h>
int main()
{int i = 0;for (i = 0; i <= 10000; i++){//判断i是否为"水仙花数"//计算i是几位数-n//得到i的每一位,计算他的n次方之和-int count = 0;int tmp = i;int sum = 0;while (tmp){tmp /= 10;count++;}tmp = i;while (tmp){sum += pow(tmp % 10, count);tmp /= 10;}ew25if (sum == i){printf("%d ", i);}}return 0;
}

总结 :

解决此类问题的关键在于将问题分块话,一步一步解决当前的问题,最后从整体的角度解决问题。

欢迎大家在评论区留言!

 

 

 

 

 

 

 

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

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

相关文章

Scikit-Learn回归树

Scikit-Learn回归树 1、决策树1.1、什么是决策树1.2、决策树学习的步骤1.3、决策树算法 1、决策树 决策树&#xff08;DTs&#xff09;是一种用于回归和分类的有监督学习方法。通常&#xff0c;决策树用于分类问题&#xff1b;当决策树用于回归问题时&#xff0c;称为回归树。回…

两性情感课程笔记 2020~2023

2020 剽悍生活博客七爱哦耶浪迹小鹿魔卡Chris李越泰阳欧阳浮夸舞步爱情光谱乌鸦倪称男哥路易梵公子绅士派艾克迪诺校长感觉流卡卡危险人物晓辉爱上情感恋爱研习社摄影艾瑞克Chic情叔明日恋爱情受最绅士魅男其它 2021 城市猎人知乎文章 20210926阿尔法安小妖曹学敏Chris七分学…

【C++】:日期类的实现 -- 日期计算器

前言 1.日期类是一种十分经典的类型。对于C的初学者&#xff0c;它能够帮助我们融会贯通许多C的基础知识&#xff0c;它涉及许多的基础语法&#xff0c;比如引用&#xff0c;函数重载&#xff0c;传值/传参返回&#xff0c;构造函数&#xff0c;运算符重载&#xff0c;const成…

【Python小练】求斐波那契数列第n个数

题目 输出斐波那契数列第n个数。 分析 首先我们要知道&#xff0c;斐波那契数列&#xff0c;这个数列从第三位开始等于前两个数的和&#xff0c;要知道数列第n个数&#xff08;n>2&#xff09;&#xff0c;就要知道其前两相的值&#xff0c;着就需要用到递归了。来看一下吧…

C语言实验-循环结构和选择结构

一&#xff1a; 求和:1(14)(149)(14916)…(14916…n2)? 其中n的值由键盘输入&#xff1b; #define _CRT_SECURE_NO_WARNINGS #include<stdio.h>int main() {int sum 0;int n 0;printf("请输入一个整数");scanf("%d", &n);for (int i 0; i &l…

Apache中如何配置 ws 接口

Apache中如何配置 wss 接口 在Apache中配置WebSockets的支持&#xff0c;你需要使用mod_proxy_wstunnel模块&#xff0c;该模块是Apache的一个代理模块&#xff0c;它允许你代理WebSocket请求。 以下是配置步骤的简要说明和示例&#xff1a; 确保你的Apache服务器安装了mod_…

【最大公约数 排序】2344. 使数组可以被整除的最少删除次数

本文涉及知识点 最大公约数 排序 LeetCode2344. 使数组可以被整除的最少删除次数 给你两个正整数数组 nums 和 numsDivide 。你可以从 nums 中删除任意数目的元素。 请你返回使 nums 中 最小 元素可以整除 numsDivide 中所有元素的 最少 删除次数。如果无法得到这样的元素&a…

【Kotlin】select简介

1 前言 协程的 select 是一种用于异步操作的选择器&#xff0c;它允许同时等待多个挂起函数的结果&#xff0c;并在其中一个完成时执行相应的操作。 能够被 select 的事件都是 SelectClause&#xff0c;在 select.kt 中有定义&#xff0c;如下。 public interface SelectBuild…

【高质量】2024五一数学建模C题保奖思路+代码(后续会更新)

你的点赞收藏是我后续更新的最大动力&#xff01; 一定要点击文末的卡片&#xff0c;那是获取资料的入口&#xff01; 你是否在寻找数学建模比赛的突破点&#xff1f; 作为经验丰富的数学建模团队&#xff0c;我们将为你带来2024 年五一数学建模&#xff08;C题&#xff09;…

react中useReducer如何使用

useReducer 是 React 提供的一个用于状态管理的 Hook&#xff0c;它接收一个 reducer 函数和初始状态作为参数&#xff0c;并返回当前状态以及一个 dispatch 函数。这个 Hook 适用于管理复杂或嵌套的状态对象&#xff0c;它提供了一种更加结构化的更新状态的方法。 useReducer是…

1700java进销存管理系统Myeclipse开发sqlserver数据库web结构java编程计算机网页项目

一、源码特点 java web进销存管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为sqlser…

Vue通过下拉框选择字典值,并将对应的label以及value值提交到后端

产品品种从字典中获取 产品性质也是从字典中获取 字典当中的保存 dict_type表 dict_data表 在表单提交的方法中 1.因为做的产品性质是多选&#xff0c;它会以数组的方式提交&#xff0c;所以需要先将Json格式转变为String JSON.stringify(this.form.nature) 2.提交表单&…

【Linux网络编程】DNS、ICMP、NAT技术、代理服务器+网络通信各层协议总结

DNS、ICMP、NAT技术、代理服务器网络通信总结 1.DNS2.ICMP协议2.1ping命令2.2traceroute命令 3.NAT技术4.NAT和代理服务器5.网线通信各层协议总结 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&…

【Python】指定正负样本在逻辑回归和随机森林模型训练中的重要性

太多的借口 太多的理由 为了爱情 我也背叛了所有 如果你想离开我 就别再畏畏缩缩 太多的借口 太多的理由 别再问我难过时候怎么过 或许会好好地活 或许会消失无踪 你在乎什么 &#x1f3b5; 陈冠蒲《太多》 在机器学习的分类问题中&#xff0c;正确地指定…

vue3 依赖-组件tablepage-vue3版本1.0.3更新内容

github求⭐ 可通过github 地址和npm 地址查看全部内容 vue3 依赖-组件tablepage-vue3说明文档&#xff0c;列表页快速开发&#xff0c;使用思路及范例-汇总 vue3 依赖-组件tablepage-vue3说明文档&#xff0c;列表页快速开发&#xff0c;使用思路及范例&#xff08;Ⅰ&#…

JAVAEE—servlet的概念及使用,使用servlet接口实现一个表白墙

文章目录 servlet的概念静态页面和动态页面servlet的作用 写出一个servlet程序目录的创建设置smart tomcat编写helloworld servlet的概念 首先我们要搞明白什么是servlet&#xff0c;servlet是一种实现动态页面的技术&#xff0c;他是由tomcat提供给程序员的一组API可以帮助程…

好用的电子文档管理系统应具备哪些功能?

文档是我们工作生活的基本组成部分&#xff0c;但你可能没有注意到花了多少时间处理它们。 良好的电子文档管理可以节省时间并简化整个组织的流程&#xff0c;来进一步了解下吧&#xff01; 文档管理软件的用例 电子文档管理系统,8Manage EDMS,高亚科技 文档管理不仅仅是组…

html中引用视频文件的方式有哪些?

在HTML中引用视频文件的方式有以下几种&#xff1a; 使用 <video> 标签&#xff1a;通过使用 <video> 标签来嵌入视频文件&#xff0c;可以设置视频的大小、播放控件和其他属性。示例代码如下&#xff1a; <video src"video.mp4" controls width&qu…

信息安全实战01_基于AES(CMAC)加密算法脚本开发

本文框架 前言1. 基于AES128的CMAC认证脚本开发1.1 hex文件解析1.2 涉及的Python库1.3 读取待认证的hex数据1.4 计算CMAC1.5 CMAC填充1.6 Chechsum的计算前言 在信息安全中有两个非常重要的应用:安全启动及安全刷新,所谓安全启动即是在用户程序启动前,先进行校验,防止恶意…

【学习笔记二十九】EWM较特殊的业务场景

一、供应商寄售业务相关 1.创建寄售物料、寄售信息记录以及寄售的采购订单 2.创建交货单 3.维护入库交货 行项目里存在C寄售的标识 4.创建上架的仓库任务并确定 查看仓位库存&#xff0c;发现仓位库存里存在寄售标识C以及寄售库存所有方 5.寄售转自有 ①首先MIGO里进行寄…