C++语言编程 输入数据有多组。每组输入数据包括一个整数N和N个整数……求大神,在线等急

C++语言输入数据有多组。每组输入数据包括一个整数N和N个整数,每个整数之间用空格分隔,每组输入占一行。当N为0时输入结束。对于每组输入数据,计算N个整数的和并输出,每个... C++语言 输入数据有多组。每组输入数据包括一个整数N和N个整数,每个整数之间用空格分隔,每组输入占一行。当N为0时输入结束。对于每组输入数据,计算N个整数的和并输出,每个输出占一行。 展开
 我来答
三天打鱼N
2019-09-02 · TA获得超过1540个赞
知道大有可为答主
回答量:2032
采纳率:74%
帮助的人:602万
展开全部

void main(void)

{

while (true) {

int n;

scanf("%d", &n);

if (n == 0)break;

int s = 0;

while (n--)

{

int x;

scanf("%d", &x);

s += x;

}

printf("%d\n", s);

}


}

司马刀剑
高粉答主

2019-09-02 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7533万
展开全部
你可以先做一个预处理。例如说有一个a数组,a[n]为1表示n是2的幂,否则不是
那么你在初始化的时候a数组整个就是全为0的
然后
int p = 1;
for (int i=0; i<=31; ++i) //这里根据你要的数据量大小决定,这里是有符号的
{
a[p] = 1;
p <<= 1;
}

ok,预处理只做了32次赋值和32次位移而已。接下来对于任意输入的N,
你只要直接输出a[N]。这是O(1)的
所以我认为,这是很快的一种做法

//以上是算法方面的问题
我仔细看了你的提问之后我发现你的问题应该是在对输入数据的处理方面。推荐你做
杭电上所有的a+b problem还有输入输出处理的题目(1089~1096)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2019-09-02 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include "iostream"

using namespace std;

int main()

{ int n,i,s,x;

  scanf("%d",&n);

  while(n)

  { for(i=s=0; i<n; i++)

    { scanf("%d",&x);

      s+=x;

    }

    printf("%d\n",s);

    scanf("%d",&n); 

  }

  return 0;

}

请点击输入图片描述

更多追问追答
追问
问一下 去掉N等于0时输入结束怎么改一下 谢了

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式