C++ 计算使用while循环需要多少天
一个人在森林里收集了N个袋子。一包他 带回家。第二天,他邀请了一位朋友,带了两个 包回家后,第三天他们每个人都邀请了另一个朋友和朋友 带着4个包回家等等。。。计算一下需要多少天 所有的行李都要带回家。在最后一天,并非所有 朋友必须有一个包 我不知道从哪里开始,除了应该从while开始(N>0) 到目前为止,我已经想到了这个:C++ 计算使用while循环需要多少天,c++,while-loop,C++,While Loop,一个人在森林里收集了N个袋子。一包他 带回家。第二天,他邀请了一位朋友,带了两个 包回家后,第三天他们每个人都邀请了另一个朋友和朋友 带着4个包回家等等。。。计算一下需要多少天 所有的行李都要带回家。在最后一天,并非所有 朋友必须有一个包 我不知道从哪里开始,除了应该从while开始(N>0) 到目前为止,我已经想到了这个: while (n>0) { n=n-1; if (n!=0) { sum++; } } 如果不先逻辑地解决问题,就无法编写代
while (n>0) {
n=n-1;
if (n!=0) {
sum++;
}
}
如果不先逻辑地解决问题,就无法编写代码。在您的情况下,解决方案的关键是要记住,每天回家的行李数量将是前一天的两倍。这是我能想到的最简单的解决方案:
#include <iostream>
int main() {
int N, days = 0;
std::cin >> N;
for ( int i = 1; N > 0; N -= i, i *= 2, ++days );
std::cout << days;
return 0;
}
#包括
int main(){
int N,天数=0;
标准:cin>>N;
对于(int i=1;N>0;N-=i,i*=2,++天);
虽然我还在积极学习C++,但是我认为我可以在PHP中循环输出你想要的输出。从我可以收集到的,你需要的公式是<强> n=n- i>强> <强> >i>强:是迭代器,每天加倍,<强> n < /强>是包数……>
$n = 10; // number of bags gathered
$i = 1; // iterator for day 1
$days = array($n); // create an array to help keep track of the days
$n = $n - $i; // day 1 has to be done outside the loop
array_unshift($days, $n); // prepend new n value to array
// while loop
while ($n > 0) {
$i = ($i * 2); // double the iterator each day (run)
$n = $n - $i;
if ($n > 0) {
array_unshift($days, $n); // prepend each new n value to array
}
}
// count each item in the array
echo $numberOfDays = count($days); // outputs 4
在钢笔和纸上用少量的数字检查,每一个都是正确的。我假设这个概念可以应用到C++。
开始用铅笔和纸来解决这个问题。如果有,把它翻译成代码。ῥεῖ. 首先在纸上解决数学问题,然后编写代码。我已经用我认为有效的方法编辑了这篇文章,但是我不确定。从蛮力开始,这样你就有了一些东西,然后做一些数学研究。有一些数学捷径可以将求和序列简化为一行运算。你可能可以利用一对一运算模拟循环。只要想想每天回家的行李数量会比上一天增加2倍。问题是,我必须使用循环,而不是循环。:/你应该能够将for
转换为,而。1)为什么天
是一个数组?2)回声计数($days)
足够了。3)第1天必须在循环之外完成
为什么?1)我把天作为一个数组来计算变量“n”在达到0之前变化的次数。2)我意识到了这一点,但也很好地将其存储起来,以备以后使用+我试图进行描述。3)我想这不必在循环之外完成,也许如果我玩的话我可以找到一个if语句,允许它在循环中运行,但老实说,这是我能给出的第一个有效答案。
$n = 10; // number of bags gathered
$i = 1; // iterator for day 1
$days = array($n); // create an array to help keep track of the days
$n = $n - $i; // day 1 has to be done outside the loop
array_unshift($days, $n); // prepend new n value to array
// while loop
while ($n > 0) {
$i = ($i * 2); // double the iterator each day (run)
$n = $n - $i;
if ($n > 0) {
array_unshift($days, $n); // prepend each new n value to array
}
}
// count each item in the array
echo $numberOfDays = count($days); // outputs 4