瑞贝卡的训练:
1251 瑞贝卡的训练1
解题思路:一个数列,第一次跳1米,第二次跳2米。一直这样排列下去。所以我们只需要用一个for循环就可以了。
代码:
#include<cstdio>
int main()
{
int n,m,s=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
s+=i;//每次多跳了i米
m++;//跳了多少次
if(s>n)//当大于赛道时要干什么
{
printf("%d",m);//第几次跳过了终点
break;//结束
}
}
return 0;
}
1252 瑞贝卡的训练2
这道题和第一道题的不同之处是在i一开始是3,而每次都增加2。
下面来看代码:
#include<cstdio>
int main()
{
int n,m,s=0;
scanf("%d",&n);
for(int i=3;i<=n;i=i+2)//i从3开始,每次多跳2米
{
s+=i;
m++;
if(s>n)
{
printf("%d",m);
break;
}
}
return 0;
}
1253 瑞贝卡的训练3
知道她第一次跳a米,然后每次都比上一次多跳b米。所以我们只需要对for语句里改一点就ok了。i=a;i=i+b;
还需要注意数据范围。
下面来看代码:
#include<cstdio>
int main()
{
int n,m,a,b,s=0;
scanf("%d %d %d",&n,&a,&b);
for(int i=a;i<=10000;i=i+b)//**重点**
{
s+=i;
m++;
if(s>n)
{
printf("%d",m);
return 0;
}
}
return 0;
}
1254 瑞贝卡的训练4
知道她第一次跳2米,第二次跳4米,第三次跳8米;每次都跳跃出上一次的两倍距离。 注意:这里虽然说每次都跳跃出上一次的两倍距离*但是还告诉了我们i的起始是2。
代码:
#include<cstdio>
int main()
{
int n,m,s=0;
scanf("%d",&n);
for(int i=2;i<=10000;i=i*2)//i每次都比上一次多两倍
{
s+=i;
m++;
if(s>n)
{
printf("%d",m);
break;
}
}
return 0;
}
1255 瑞贝卡的训练5
若干行,每行一个整数x ; 当x=0 的时候,输入结束。
代码:
#include<cstdio>
int main()
{
int x,s=0;
for(int i=1;i<=100000;i++)//题目范围
{
scanf("%d",&x);
//当x等于0时结束
if(x==0)
{
break;
}
s+=x;
}
printf("%d",s);
return 0;
}
1256 瑞贝卡的训练6
x表示跳跃次数,t表示该组的完成时间; 当x和t同时等于0 的时候,输入结束。这道题比上一道题难在还有一个时间(其实并不难)求出时间,相除,就求出了每分钟的跳跃次数。
代码:
#include<cstdio>
int main()
{
int x,t,s=0,m=0;
for(int i=1;i<=1000;i++)
{
scanf("%d %d",&x,&t);
if(x==0&&t==0)
{
break;
}
s+=x;//总共的跳跃次数
m+=t;//总共花了的时间
}
double ans=1.0*s/m;//每分钟的跳跃次数
printf("%.2lf",ans);//答案保留两位小数
return 0;
}