gpt4 book ai didi

c - 如何获取非空格分隔的n位数字输入

转载 作者:行者123 更新时间:2023-11-30 18:41:08 24 4
gpt4 key购买 nike

注意:请不要编写此问题的解决方案(即算法逻辑)。

昨天厨师举办了一场盛大的聚会,但不记得他是如何庆祝的。但他在厨房里发现了一张奇怪的纸,其中包含 n 个数字(让它们给出从 1 到 n 的索引,并将它们命名为 a1、a2 ... aN)。

厨师记得他玩过这样的游戏:

On each step he choose an index x from 1 to n.
For all indices y (y < x) he calculated the difference by = ax - ay.
Then he calculated B1 - sum of all by which are greater than 0 and B2 - sum of all by which are less than 0.
The answer for this step is B1 - B2.

厨师记得游戏,但忘记了答案。请帮助他!输入

The first line contains two integers n, m denoting the number of digits and number of steps. The second line contains n digits (without spaces) a1, a2, ..., an.
Each of next m lines contains single integer x denoting the index for current step.

输出

For each of m steps print single number in a line - answer of the step.

约束

1 ≤ n, m ≤ 10^5
0 ≤ ai ≤ 9
1 ≤ x ≤ n

现在我如何输入 n 位数字?我的意思是我如何在其中使用 scanf 代码。我不知道 n 的确切值,所以我无法声明这么多变量。这是否意味着我需要一个数字输入?

最佳答案

一次只获取一个字符:

int num = getc(stdin) - '0';

减‘0’是将字符变成数字。显然,错误检查留作练习。

关于c - 如何获取非空格分隔的n位数字输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22912959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com