
代码:
#include <iostream>
using namespace std;
int main(void)
{
int n;
cin >> n;
int k;
cin >> k;
int a[1000];
bool b[1000];
int count = 0;
int live = n;
int temp;
for (int i = 0; i < n; i++)
{
a[i] = 0;
b[i] = true;
}
while (live != 1)
{
for (int j = 0; j < n; j++)
{
if (b[j])
{
count++;
a[j] = count;
if (a[j] % k == 0)
{
b[j] = false;
live--;
}
else
{
if (a[j] % 10 == k) {
b[j] = false;
live--;
}
}
}
}
}
for (int k = 0; k < n; k++) {
if (b[k]) {
cout << k + 1 << endl;
}
}
system("pause");
return 0;
}
注意求一个数最末位的数值,只要将其%10即可。
此题应注意的一个问题是,目前这个代码的的分数是 90,显示有一数据运行超时,目前还没有找到解决的方式。
本文深入解析了一段C++代码,该代码用于通过特定条件筛选数组元素,旨在找出在一系列操作后仍符合条件的元素。文章揭示了如何判断一个数的末位数字,并讨论了代码中存在的性能瓶颈,即某数据运行超时的问题,尽管当前解决方案尚未找到,但为读者提供了思考和优化的空间。
775

被折叠的 条评论
为什么被折叠?



