小蒟蒻的成长之路 4
试炼场1-3(2)
终于做完了级数求和,开始做小玉在游泳
小玉在游泳
小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。
废话(↑) 有用(↓)
已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%。现在小玉想知道,如果要游到距离x米的地方,她需要游多少步呢。请你编程解决这个问题。
做编程题读条件,先分清哪些是废话,哪些是有用的
这一题我总算没有重蹈覆辙(详见上一章),没有选错变量类型
但是!!!
#include <iostream>
#include <unistd.h>
using namespace std;
int main()
{
double a,b=0;
double c=2.0;
cin>> a;
while(1)
{
b=b+1.0/c;
if(b>a)
{
cout << c;
break;
}
c=c*0.98;
}
}
看起来没有问题呀
且慢!!!
c是什么?
是小玉游的米数,不是游的秒数!!!
所以我应该增加一个变量:d
奉上AC代码
#include <iostream>
using namespace std;
int main()
{
double a,b=0;
double c=2.0;
cin>> a;
int d=1;
while(1)
{
b=b+c;
if(b>a)
{
cout << d;
break;
}
c=c*0.98;
d++;
}
}
解决这道题,我喜笑颜开,然后继续做下一题
小鱼的航程(改进版)
有一只小鱼,它平日每天游泳 250 公里,周末休息(实行双休日),假设从周 x(1≤x≤7) 开始算起,过了 n(n≤10^6)天以后,小鱼一共累计游泳了多少公里呢?
这小鱼思想很先进啊,居然懂得实施双休日!
咳咳,不扯那些没用的了
这题有人说会炸int,但我仍然使用int,不是因为我算出了最大的数值,因为我不知道什么叫炸int
再来一句废话:int三个字母 double六个字母 long long九个字符,你说哪个省力?
这题起初我的思路是纯模拟,事实证明,我的思路半点不错
但是我的思路确实没有错,只是我的能力有限啊
#include <iostream>
using namespace std;
int main()
{
int x;
cin >> x;
int y;
cin >> y;
int a=0;
for(int i=1;i<=y;i++)
{
x++;
if(x==8)
{
x=1;
}
if(x!=6&&x!=7)
{
a=a+250;
}
}
cout << a;
}
60分
我很懵,这是什么情况???
嗯……
我自己做了下样例,发现没有问题
这是什么情况???
我看了看,顿时发现了问题
从周x开始,也包括这一天!
我先把x++就会导致不包括这一天!
于是我更改了代码
#include <iostream>
using namespace std;
int main()
{
int x;
cin >> x;
int y;
cin >> y;
int a=0;
for(int i=1;i<=y;i++)
{
if(x>=8)
{
x=x%7;
}
if(x!=6&&x!=7)
{
a=a+250;
}
x++;
}
cout << a;
}
100分,AC了!
然后是计数问题
试计算在区间1到n的所有整数中,数字x(0≤x≤9)共出现了多少次?例如,在 1到11中,即在 1,2,3,4,5,6,7,8,9,10,11,中,数字1出现了4次。
当时我用一种蠢死了的办法做的
#include <iostream>
using namespace std;
int main()
{
long a,b,n;
cin >> a>>b;
for(int i=1;i<=a;i++)
{
if(b!=0)
{
if(i%10==b)
{
n++;
}
if(i%100/10==b)
{
n++;
}
if(i%1000/100==b)
{
n++;
}
if(i%10000/1000==b)
{
n++;
}
if(i%100000/10000==b)
{
n++;
}
if(i%1000000/100000==b)
{
n++;
}
if(i%10000000/1000000==b)
{
n++;
}
if(i%100000000/10000000==b)
{
n++;
}
if(i%1000000000/100000000==b)
{
n++;
}
}
if(b==0)
{
if(i%10==b&&i>=10)
{
n++;
}
if(i%100/10==b&&i>=100)
{
n++;
}
if(i%1000/100==b&&i>=100)
{
n++;
}
if(i%10000/1000==b&&i>=1000)
{
n++;
}
if(i%100000/10000==b&&i>=10000)
{
n++;
}
if(i%1000000/100000==b&&i>=100000)
{
n++;
}
if(i%10000000/1000000==b&&i>=1000000)
{
n++;
}
if(i%100000000/10000000==b&&i>=10000000)
{
n++;
}
if(i%1000000000/100000000==b&&i>=100000000)
{
n++;
}
}
}
cout << n;
}
尽管AC了,但是有待优化
关卡1-3通关了~~~
下一个,1-4,数组!