📅  最后修改于: 2023-12-03 15:20:54.728000             🧑  作者: Mango
如果你是练习 Uri beecrowd 平台上的程序员,你可能会遇到一些挑战。其中一个挑战就是 Uri beecrowd 问题没有 - 1131。在这个问题中,要求我们写一个程序,读取N个数,然后按照固定的表格中将其分类,并输出分类的结果。本篇文章将为您提供 Uri beecrowd 问题没有 - 1131 的解题思路及C语言实现。
对于输入的每个数,我们需要计算其整数部分的平方根,然后将其余数分类到固定的表格中。
具体来说,我们可以首先定义一个 $6×2$ 的二维数组,其中每一行表示一个区间,从下到上分别表示 $x<0$, $[0,1)$, $[1,4)$, $[4,9)$, $[9,16)$ 和 $x≥16$ 这六个区间。每行的第一列表示该区间内的计数器,第二列表示该区间内所有数字的平方根之和。
我们读入每个数后,可以调用 sqrt 函数计算其平方根。然后我们就可以在分类表格中找到一个区间,该区间包含我们接下来要讲的余数。
我们需要在该区间的计数器字段中增加 1,并将其平方根之和字段增加我们计算得到的平方根值。
当所有数字处理完毕时,我们需要按照格式输出分类表格。
#include <stdio.h>
#include <math.h>
int main() {
int i;
double x, root;
int counter[6][2] = {0};
for (i = 0; i < 5; ++i) {
counter[i + 1][0] = counter[i][0];
counter[i + 1][1] = counter[i][1];
}
int N;
scanf("%d", &N);
while (N--) {
scanf("%lf", &x);
root = sqrt(fabs(x));
if (x < 0) {
++counter[0][0];
counter[0][1] += root;
} else if (x < 1) {
++counter[1][0];
counter[1][1] += root;
} else if (x < 4) {
++counter[2][0];
counter[2][1] += root;
} else if (x < 9) {
++counter[3][0];
counter[3][1] += root;
} else if (x < 16) {
++counter[4][0];
counter[4][1] += root;
} else {
++counter[5][0];
counter[5][1] += root;
}
}
printf("Quantidade de números na primeira faixa: %d\n", counter[0][0]);
printf("Quantidade de números na segunda faixa: %d\n", counter[1][0]);
printf("Quantidade de números na terceira faixa: %d\n", counter[2][0]);
printf("Quantidade de números na quarta faixa: %d\n", counter[3][0]);
printf("Quantidade de números na quinta faixa: %d\n", counter[4][0]);
printf("Quantidade de números na sexta faixa: %d\n", counter[5][0]);
printf("Soma de todos os números na primeira faixa: %.2f\n", counter[0][1]);
printf("Soma de todos os números na segunda faixa: %.2f\n", counter[1][1]);
printf("Soma de todos os números na terceira faixa: %.2f\n", counter[2][1]);
printf("Soma de todos os números na quarta faixa: %.2f\n", counter[3][1]);
printf("Soma de todos os números na quinta faixa: %.2f\n", counter[4][1]);
printf("Soma de todos os números na sexta faixa: %.2f\n", counter[5][1]);
return 0;
}
上面是我们用C语言实现的程序。我们定义了一个 $6 × 2$ 的二维数组,存储分类表格中每个区间的计数器和平方根之和。
我们读入每个数字,计算其平方根。然后在分类表格中找到一个区间,该区间包含该数字余数。我们增加该区间中的计数器和平方根之和。
最后我们按照格式输出分类表格。
运行这个程序,并使用任意数字进行测试。它应该能够正确地输出分类表格。
在本文中,我们提供了 Uri beecrowd 问题没有 - 1131 的解题思路及C语言实现。这个程序使用了 $6 × 2$ 的二维数组,存储了分类表格中每个区间的计数器和平方根之和。我们通过计算每个数字的平方根将其分类到固定的区间中,并相应地更新分类表格。最后,我们按照给定的格式输出分类表格。
我希望这篇文章能帮助你解决 Uri beecrowd 平台上的问题。如果你有任何问题或反馈,请在评论区留言。