指针数组等作业

发布于:2022-12-13 ⋅ 阅读:(484) ⋅ 点赞:(0)

题目一

关于Debug和Release的区别说法错误的是:( )

作业内容
A.Debug被称为调试版本,程序调试找bug的版本
B.Release被称为发布版本,测试人员测试的就是Release版本
C.Debug版本包含调试信息,不做优化。
D.Release版本也可以调试,只是往往会优化,程序大小和运行速度上效果最优

c语言调试知识

这个题目的正确答案是D 我选择了C
其实这是因为我在调试知识中没有写出release版本没有调试功能 老师上课讲到过 已经补上

题目二

喝汽水问题

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

思路分析 我做这道题目的时候是一个一个找规律发现的
如果只买一瓶水 那就只能喝一瓶
如果买两瓶水 那就只能喝三瓶
如果买三瓶水 那就只能喝五瓶

我们可以发现买n瓶水 就能喝2n-1瓶水 (第一种解法)
买n瓶水 比买(n-1)瓶水多喝两瓶水 且如果只有一瓶水 那就只能喝一瓶(第二种解法)

第一种

	if(money <= 0)
	{
		total = 0;
	}
	else
	{
		total = money*2-1;
	}
	printf("total = %d\n", total);
 

第二种

int count_(int x)
{
	if (x==1)
	{
		return 1;
	}
	else
	{
		return 2 + count_(x - 1);
	}
}

int main()
{
	int sum = count_(20);
	printf("%d\n", sum);
}

当然 除此之外我们还有第三种解法

在这里插入图片描述
代码如下

int main()
{
	int empty = 0;
	int sum = 0;
	int money = 0;
	scanf("%d", &money);
	empty = money;
	sum = money;
	while (empty>1)
	{
		sum += empty / 2;
		empty = empty / 2 + empty % 2;
	}
	printf("%d\n", sum);
	return 0;
}

在这里插入图片描述
结果如上

题目三

描述
变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number。

例如:

655 = 6 * 55 + 65 * 5

1461 = 1461 + 1461 + 146*1

求出 5位数中的所有 Lily Number。

输入描述:

输出描述:
一行,5位数中的所有 Lily Number,每两个数之间间隔一个空格。

在这里插入图片描述

#include<stdio.h>
int main()
{
    // 遍历用
    int i =0;
    // 计算两位数用
    int mod =10000;
    // 计算和用
    int sum =0;
    int ret =0;
    for(i=10000;i<=99999;i++)
    {
        int sum =0;
        int mod =10000;
        while(mod)
        {
            ret =(i%mod)*(i/mod);
            sum+=ret;
            mod/=10;
        }
        if (i==sum)
            printf("%d ",i);
    }
    return 0;
}

代码表示如下

这里主要需要注意的就是sum要及时重置

以上就是本篇博客的全部内容啦 由于博主才疏学浅 所以难免会出现纰漏 希望大佬们看到错误之后能够

不吝赐教 在评论区或者私信指正 博主一定及时修正

那么大家下期再见咯

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到