早教吧作业答案频道 -->其他-->
c#N个人报数的题目n个人围成一圈报数,报到3和3的倍数的人离开,最后剩下一人是几号?最后剩下的那人报的数的总和是多少?
题目详情
c#N个人报数的题目
n个人围成一圈报数,报到3和3的倍数的人离开,最后剩下一人是几号?
最后剩下的那人报的数的总和是多少?
n个人围成一圈报数,报到3和3的倍数的人离开,最后剩下一人是几号?
最后剩下的那人报的数的总和是多少?
▼优质解答
答案和解析
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入人数:");
int n=int.Parse(Console.ReadLine());
//创建报数的人的集合
List persons=new List();
for (int i=0; i < n; i++)
{
persons.Add(new Person());
}
//集合的索引、上一个报数的人的索引、已离队的人数、当前所报的数
int index=0, lastIndex=0, leaveCount=0, call=0;
while (true)
{
//如果当前这个人未离队
if (!persons[index].Leave)
{
//如果他所报的数是3的倍数
if (++call % 3 == 0)
{
persons[index].Leave = true;
leaveCount++;
//如果只剩最后一个人就退出循环
if (n - leaveCount == 1) break;
}
else
{//否则,累积当前这个人所报的数的和
persons[index].Sum += call;
lastIndex = index;
}
}
//集合索引+1,达到上限会回到0
index = ++index % n;
}
Console.WriteLine("最后一个人是第{0}个,他报数的总和是:{1}.", lastIndex + 1, persons[lastIndex].Sum);
Console.ReadLine();
}
}
class Person
{
///
/// 报数的总和
///
public int Sum = 0;
///
/// 是否离开报数队列
///
public bool Leave = false;
}
{
static void Main(string[] args)
{
Console.WriteLine("请输入人数:");
int n=int.Parse(Console.ReadLine());
//创建报数的人的集合
List persons=new List();
for (int i=0; i < n; i++)
{
persons.Add(new Person());
}
//集合的索引、上一个报数的人的索引、已离队的人数、当前所报的数
int index=0, lastIndex=0, leaveCount=0, call=0;
while (true)
{
//如果当前这个人未离队
if (!persons[index].Leave)
{
//如果他所报的数是3的倍数
if (++call % 3 == 0)
{
persons[index].Leave = true;
leaveCount++;
//如果只剩最后一个人就退出循环
if (n - leaveCount == 1) break;
}
else
{//否则,累积当前这个人所报的数的和
persons[index].Sum += call;
lastIndex = index;
}
}
//集合索引+1,达到上限会回到0
index = ++index % n;
}
Console.WriteLine("最后一个人是第{0}个,他报数的总和是:{1}.", lastIndex + 1, persons[lastIndex].Sum);
Console.ReadLine();
}
}
class Person
{
///
/// 报数的总和
///
public int Sum = 0;
///
/// 是否离开报数队列
///
public bool Leave = false;
}
看了c#N个人报数的题目n个人围成...的网友还看了以下:
地球经度范围:73°33′E至135°05′E纬度范围:3°51′N至53°33′N可以种植的农作 2020-06-11 …
解释下列正三角形法证明1^2+2^2+3^2+.+n^2=?(酌情追加)(急)“想像一个有圆圈构成 2020-06-12 …
一座电视塔的圆形塔底的半径是30米,现在要在它的周围种上20米宽的环形草坪(如图).(1)如果在草 2020-07-26 …
数列{an}满足递推式:an=3an-1+3^n-1(n>=2),a1=5,则使得{an+k/3^ 2020-08-01 …
已知函数f(x)=lnx-x+a(a∈R)(1)若函数f(x)没有零点,求实数a的取值范围(2)若 2020-08-02 …
小红拿一根绳子来测量一根树干的周长,将绳子3折,围一圈还多0.3米.将绳子4折,围一圈还差0.5米. 2020-11-16 …
李大爷围了一个半径是12m的圆形羊圈,要用多长的铁丝才能把这个羊圈围上3圈(接头处忽略不计)?如果每 2020-11-20 …
一座电视塔的圆形塔底的半径是30米,现在要在它的周围种上20米宽的环形草坪(如图).(1)如果在草坪 2020-12-11 …
问题是下面的求有理数的加减法,可以用图形,三角形图案是由圆圈排列组成的,每层的圆圈数分别为1,2,3 2020-12-25 …
请你作出正确判断,给画线的字选择正确读音。1.A.xùB.chù(1)牲畜(2)畜养(3)畜产2.A 2021-01-06 …