gpt4 book ai didi

c - 多次加倍变量,并将变量的所有迭代加在一起

转载 作者:太空宇宙 更新时间:2023-11-04 01:11:13 24 4
gpt4 key购买 nike

为清晰起见进行了编辑。我为混淆道歉:3

好的,我正在上在线 CS 类(class),我们应该用 C 语言编写一个程序,它会告诉你如果你在月初有一分钱,你会有多少钱每天翻一番。

每天你都会得到昨天的两倍,再加上前几天的一切。

示例:您从 .01 开始,计算第 3 天的累计总计。所以第一天是 .01,第二天是 .02,第三天是 .04。在第 3 天,您将获得 0.01+0.02+0.04 (.09)。

该程序打算在任何给定月份(28 - 31 天)的持续时间内计算此过程。

我真的很难尝试实现它。我已经把它加倍了,但我不确定如何将之前计算的天数加在一起。

这是我的代码:

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

int main(void) {

/*days represents total days in months*/
/*pens represents the number of pennies on the first day*/

long long days;
long long pens;

do {
printf("Enter the number of days in the month: ");
scanf("%llu", &days);
} while(days < 28 || days > 31);

printf("Enter the initial number of pennies: ");
scanf("%llu", &pens);

for (int i=0; i<= days-1; i++) {
pens += pow(2,i);
printf("You'll have $%llu\n", pens);
}
}

edit2:好的,所以我想我已经修复了它,多亏了你所有很棒的建议。我将最后一部分更改为:

for (int i=0; i<= days-1; i++)
{
pens = pens + (pens * 2);

}
total = pens / 100;
printf("You'll have $%.2f\n", total);

}

虽然输出仍然存在一个小问题(我认为这是由于我使用的数据类型造成的?)它打印出:

您将获得 $0.00您将获得 0.00 美元您将获得 0.00 美元您将获得 0.00 美元您将获得 $2.00你将得到 7.00 美元你将得到 $21.00您将获得 65.00 美元您将获得 196.00 美元您将获得 590.00 美元您将获得 $1771.00您将获得 $5314.00您将获得 $15943.00您将获得 $47829.00您将获得 $143489.00您将获得 $430467.00您将获得 $1291401.00您将获得 $3874204.00

等等

很好,但我敢打赌它不是那么准确,因为前几次迭代是 0.00。

最佳答案

好吧,让我们把你要做的翻译成伪代码:

var daily_amount = 0.01
var total = daily_amount

iteration_over_days:
daily_amount *= 2
total += daily_amount

从那里开始,您需要做的就是翻译成 C。

尽情享受吧!

除了使用 long 数据类型,您还可以从 1 开始,然后在末尾除以 100:$0.01 -> $1

关于c - 多次加倍变量,并将变量的所有迭代加在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12345990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com