您的位置:首页 - C#
C#幸运数字车轮战
一些数字顺时针排成一个圈,最上面的是1,从1开始,隔一个数,移除一个数,顺时针一直移下去,直到最后剩下两个数,这两个数就是幸运数字。

例如1、2、3、4、5,开始如下图:



然后从1开始隔一个去掉一个数,如下图:



这个时候已经一轮了,但是剩余数字还大于2,所以继续去,这个时候4被去掉了,跳过数字5,就要去数字1了,如下图:



最后的Lucky Number就是3和5.

要求:

输入:一个数字n,即最大的数

输出:第一行显示各个被移除的数字,按被移除的顺序显示

第二行显示剩下的两个性欲数字。

C#代码如下:

using System;
using System.Collections.Generic;

namespace KeleyiLuckyNumber
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个数字:");
int n = InputNumber();
if (n == 2)
Console.WriteLine("幸运数字是:1,2");
else
{
IList<int> numberList = InitNumberList(n);
numberList = RemovedNumberOperation(numberList);
PrintLuckyNumber(numberList);
}
Console.WriteLine("按回车键退出.欢迎访问kel" + "eyi.com获取跟多内容。");
Console.ReadLine();
}
//输入数字
public static int InputNumber()
{
try
{
// ReSharper disable AssignNullToNotNullAttribute
int m_input= int.Parse(Console.ReadLine());
if (m_input < 2)
{
Console.WriteLine("柯乐义提醒您,输入有误,系统代为输入8");
return 8;
}
return m_input;
// ReSharper restore AssignNullToNotNullAttribute
}
catch (Exception)
{
Console.WriteLine("柯乐义提醒您,输入有误,系统代为输入8");
return 8;
}
}
//初始化数字列表
public static IList<int> InitNumberList(int n)
{
IList<int> numberList = new List<int>();
for (int i = 1; i <= n; i++)
{
numberList.Add(i);
}
return numberList;
}
//去掉数据操作
public static IList<int> RemovedNumberOperation(IList<int> numbers)
{
Boolean needRemove = false;
while (true)
{
//将numberList所有需要去掉的数字先都赋值为0
for (int i = 0; i < numbers.Count; i++)
{
if (needRemove)
{
Console.Write(numbers[i] + ",");
numbers[i] = 0;
needRemove = false;
}
else
{
needRemove = true;
}
}
//去除numberList所有的0
RemovedZeroFromNumberList(numbers);
if (numbers.Count == 3)
{
if (needRemove)
{
Console.Write(numbers[0]);
numbers.RemoveAt(0);
}
else
{
Console.Write(numbers[1]);
numbers.RemoveAt(1);
}
return numbers;
}
if (numbers.Count == 2)
return numbers;
}
}
public static IList<int> RemovedZeroFromNumberList(IList<int> numbers)
{
while (true)
{
if (numbers.Contains(0))
numbers.Remove(0);
else
{
return numbers;
}
}
}
//打印幸运数字
public static void PrintLuckyNumber(IList<int> numbers)
{
Console.WriteLine();
Console.WriteLine("幸运数字是:"+numbers[0] + "," + numbers[1]);
}
}
}


输入200,执行效果:
本站导航
相关文章
柯乐义 Copyright© keleyi.com