网络信号

题目描述
楠楠来到科技馆参加一个网络信息探测试验活动。试验时中间有一个WiFi网络路由器,以路由器为中心半径为R的圆内(包括圆周上)的手机都可以收到网络信号,而圆外的手机就接收不到信号。楠楠拿着手机,一开始在中间,然后每次向左或向右走动一定距离,停下测试一下网络信号。问有多少次测试是可以接收到网络信号的。
例如:R=8米,楠楠一共测试了4次。第一次向左走3米;第二次向左再走4米;第三次向左再走2米;第四次向右再走12米,结果只有第3次测试楠楠是接收不到信号的,其它3次测试都可以接收到网络信号。

输入
第一行,2个正整数R和N。分别表示网络路由器的工作半径和楠楠的测试次数。
第二行,N个整数。第i个整数Di表示楠楠第i次向左或向右移动的距离,如果Di是负整数,则表示楠楠第i次测试是向左移动了|Di|米的距离。如果Di是非负整数,则表示楠楠第i次测试是向右移动了Di米距离。

输出
一个整数。表示楠楠有多少次测试是可以接收到网络信号的。

样例输入
复制样例数据
4 5
2 2 2 -8 -8
样例输出
3

提示
第1、2、4次都半径为4的圆内,所以可以接收信号

10个数据:R,N的范围是[1…100]。每次移动距离的范围是[-100…100]。

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int r,n;
    scanf("%d %d",&r,&n);
    int a[n],i,cnt=0,x=0,y=0;
    for(i=0;i<n;i++)
    {
        scanf("%d",&a[i]);
        x=y+a[i];
        y=x;
        if(abs(x)<=r)
            cnt++;
    }
    printf("%d
",cnt);
    return 0;
}

想得复杂就gg

原文地址:https://www.cnblogs.com/skyleafcoder/p/12319579.html