using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace exercise2
{
class Program
{
static void Main(string[] args)
{
//下面,假设目前还剩下K个人,这K个人从1到M报数,那么,当第M个人被杀后,剩下的人将按照怎样的规则报数呢?
//如果我们将第M个人被杀后,第P个人报的数计做Q,那么可以得到下面的同余式:
//(P - M % K) % K = Q
//将上式变形可以得出:
//P = ( Q + M)% K
//那么可以知道,在第(N - K + 2)轮报数为Q的人,在第(N - K + 1)轮的报数为 ( Q + M)% K.
//又易知,最后剩下的人,在最后一轮的报数必然为1,那么可以利用同余式倒推
Console.WriteLine("请输入一个数");
int number = int.Parse(Console.ReadLine());
int result = 1;
for(int i=2;i<=number;i++)
{
result = (result + 3) % i;
if (result == 0)
{
result = i;
}
}
Console.WriteLine(result);
Console.ReadLine();
}
}
}