当前位置: 首页 > news >正文

debug和release的区别,打印菱形,水仙花数,喝汽水问题,计算求和

debug和release的区别,打印菱形,水仙花数,喝汽水问题,计算求和

  • 一、debug和release的区别
  • 二、打印菱形
  • 三、水仙花数
  • 四、喝汽水问题
  • 五、计算求和

一、debug和release的区别

在这里插入图片描述
在这里插入图片描述

二、打印菱形

在 C 语言中打印出菱形图案,图案的大小由用户输入决定。

  • 菱形的上半部分和下半部分是对称的。
  • 中间行是最长的一行,逐渐变小。
  • 每一行的空格和星号数需要根据行数进行动态调整。

思路解析:
上半部分(包括中间行):
以 i 为当前行数,从 1 到中间行(n/2 + 1),空格逐渐减少,星号逐渐增加。
第 1 行打印最多空格,最后一行(中间行)打印最多星号。

下半部分:
下半部分与上半部分对称,从中间行向下,每行的空格逐渐增多,星号逐渐减少。

#include <stdio.h>
void printDiamond(int n) 
{int i, j;// 上半部分for (i = 1; i <= n / 2 + 1; i++) {// 打印空格for (j = 1; j <= n / 2 + 1 - i; j++) {printf(" ");}// 打印星号for (j = 1; j <= 2 * i - 1; j++) {printf("*");}printf("\n");}// 下半部分for (i = n / 2; i >= 1; i--) {// 打印空格for (j = 1; j <= n / 2 + 1 - i; j++) {printf(" ");}// 打印星号for (j = 1; j <= 2 * i - 1; j++) {printf("*");}printf("\n");}
}int main() 
{int n;printf("请输入一个奇数:");scanf("%d", &n);// 判断输入是否为奇数if (n % 2 == 0 || n <= 1) {printf("请输入一个大于1的奇数。\n");return 1;  // 输入不合法,程序结束}printDiamond(n);return 0;
}

三、水仙花数

求出0~100000之间的所有“水仙花数”并输出。
“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=13+53+3^3,则153是一个“水仙花数”。

思路解析:
遍历0到100000之间的所有数字对于每个数字:

  1. 确定它的位数n
  2. 计算它每一位数字的n次方之和
  3. 比较这个和与原数字是否相等
  4. 如果相等,则输出该数字
#include <stdio.h>
#include <math.h>int main()
{int i = 0;for(i=0; i<=99999; i++){int count = 1;int tmp = i;int sum = 0;//判断i是否为水仙花数//1. 求判断数字的位数while(tmp/10){count++;tmp = tmp/10;}//2. 计算每一位的次方和tmp = i;while(tmp){sum += pow(tmp%10, count);tmp = tmp/10;}//3. 判断if(sum == i)printf("%d ", i);}return 0;
}

在这里插入图片描述

四、喝汽水问题

喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给n元,可以喝多少汽水(编程实现)。

思路分析:

  • 初始状态:
    你用 n 元钱买 n 瓶汽水,每买一瓶汽水都会得到一个空瓶。所以初始空瓶数是 n。
  • 空瓶换汽水:
    每有 2 个空瓶,就能换 1 瓶汽水,喝了这瓶汽水后,会多一个空瓶。换完汽水后继续用新的空瓶进行换取。
  • 结束条件:
    只有空瓶数量大于等于 2 时才能继续换汽水,否则就不能继续。

代码如下:

#include <stdio.h>int drinkSoda(int n) 
{int totalSoda = n;  // 用n元钱可以买n瓶汽水int emptyBottles = n;  // 一开始有n个空瓶while (emptyBottles >= 2) {// 可以用空瓶换汽水int newSoda = emptyBottles / 2;totalSoda += newSoda;  // 总共喝掉的汽水数量增加emptyBottles = emptyBottles % 2 + newSoda;  // 剩余的空瓶数}return totalSoda;
}int main() 
{int n;printf("请输入钱数: ");scanf("%d", &n);int result = drinkSoda(n);printf("你可以喝到的汽水总瓶数是: %d\n", result);return 0;
}

五、计算求和

求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,
例如:2+22+222+2222+22222

int main()
{int a = 0;int n = 0;int i = 0;int sum = 0;int tmp = 0;scanf("%d%d", &a, &n);for(i=0; i<n; i++){tmp = tmp*10+a;sum += tmp;}printf("%d\n", sum);return 0;
}

变量说明:
a:用户输入的一个数字,表示数字的单位。这个数字将被用来构造数列的每一项。

n:用户输入的一个整数,表示构造数列的项数(即重复的次数)。

i:循环计数器,用于控制循环的执行次数(即构造多少项)。

sum:累加器,用于累加数列中的每一项的值。

tmp:临时变量,用来构造数列中的当前项。

逻辑解析:

  • 输入:
    程序首先通过 scanf 获取两个整数:a 和 n。a 表示用于构造每一项的基本数字,n 表示构造项数的个数。

  • 循环与项构造:
    在 for 循环中,从 i = 0 开始,到 i = n-1 结束,循环 n 次。
    每次循环,tmp 会通过 tmp = tmp * 10 + a 来构造当前的项。
    tmp * 10:这一步是将当前的 tmp 乘以 10,相当于将当前项往左移一位。
    tmp * 10 + a:然后加上 a,也就是在当前项的末尾添加数字 a。
    比如,如果 a = 2,那么每一次 tmp 的变化过程如下:
    第一次循环:tmp = 0 * 10 + 2 = 2
    第二次循环:tmp = 2 * 10 + 2 = 22
    第三次循环:tmp = 22 * 10 + 2 = 222
    以此类推,tmp 的每一项构造出类似 a, aa, aaa, … 的形式。

  • 累加:
    sum += tmp:每次构造出一个 tmp 后,将其加到 sum 中,最终得到数列的总和。

  • 输出:
    最后输出 sum,即构造的数列的和。

http://www.dtcms.com/a/271286.html

相关文章:

  • 从互联网电脑迁移Dify到内网部署Dify方法记录
  • 语音识别核心模型的数学原理和公式
  • http get和http post的区别
  • 【软件工程】tob和toc含义理解
  • 【25软考网工】第十章 (3)网络冗余设计、广域网接入技术
  • Docker 高级管理 -- 容器通信技术与数据持久化
  • mysql 故障检测与处理
  • Linux 测开:日志分析 + 定位 Bug
  • Paimon 原子提交实现
  • 【Linux】Rocky Linux 安装 Docker 与 Docker-Compose
  • AI智能选股,DeepSeek智能分析股票测试
  • 搭建一款结合传统黄历功能的日历小程序
  • C++最小生成树算法详解
  • 人机协同的关键枢纽:软件工程3.0中对象模型与模型驱动的融合路径
  • Vue 3 中父子组件双向绑定的 4 种方式
  • 如何将 AWS EBS 卷从 gp2 批量迁移到 gp3:完整指南
  • 基于Spring Boot+Vue的DIY手工社预约管理系统(Echarts图形化、腾讯地图API)
  • [Pytest][Part 4]多种测试运行方式
  • docker部署华为高斯数据库opengauss(arm版本)
  • 1.1 ARMv8/ARMv9安全扩展
  • 解决SQL Server SQL语句性能问题(9)——SQL语句改写(6)
  • 【PDF提取内容改名】批量提取pdf多个指定区域内容到excel表格的操作步骤和方法
  • NLP革命二十年:从规则驱动到深度学习的跃迁
  • Spring Boot 项目中多数据源配置使用场景
  • 美股异动|机器人概念表现活跃,微美全息(WIMI.US)瞄准高增长赛道涨超14%
  • 丰田将协作机器人与现有设备相结合,以实现超高负载能力和安全性
  • 焊接机器人智能节气装置
  • Deepoc具身智能大模型:物流机器人的神经中枢如何重塑现代供应链
  • Android ttyS2无法打开该如何配置 + ttyS0和ttyS1可以
  • 板凳-------Mysql cookbook学习 (十一--------6)