c#编程题-算法
一个小女孩正在用左手手指数数,从1数到n。她从拇指算作1开始数起,然后,食指为2,中指为3,无名指为4,小指为5。接下来调转方向,无名指算作6,中指为7,食指为8,大拇指...
一个小女孩正在用左手手指数数,从1数到n。她从拇指算作1开始数起,然后,食指为2,中指为3,无名指为4,小指为5。接下来调转方向,无名指算作6,中指为7,食指为8,大拇指为9,如此反复。问最后会停在那个手指上?用编号1、2、3、4、5依次表示大拇指、食指、中指、无名指、小指。 输入格式: 输入多组数据。每组数据占一行,只包含一个整数n(1<=n<=1000000000)。 输出格式: 每组数据占一行,只包含一个介于1和5之间的整数,表示最后停留的手指
补充问题:“如此反复”是指数到大拇指为9后,从第10个开始,又从第一个手指头开始数?!问题了解不是很清楚 展开
补充问题:“如此反复”是指数到大拇指为9后,从第10个开始,又从第一个手指头开始数?!问题了解不是很清楚 展开
5个回答
展开全部
别简单问题复杂化了,这个问题小学生都会做的题------数一数,看一看:
拇 食 中 无 小
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
发现规律了么?
具体看代码就知道了:
using System;
class Program{
static void Main(string[] args){
int x, n; // 设n是数到的数
n = Convert.ToInt32(Console.ReadLine());
x =n%10;
switch (x) // 尾数
{
case 0:
case 1:
Console.WriteLine("拇指");
break;
case 2:
case 9:
Console.WriteLine("食指");
break;
case 3:
case 8:
Console.WriteLine("中指");
break;
case 4:
case 7:
Console.WriteLine("无名指");
break;
case 5:
case 6:
Console.WriteLine("小指");
break;
}
}
}
展开全部
楼下可能理解的有误 1楼说的5-2是表示第5手指-第2手指 没有问题
代码也要按照标准OI题目格式书写
static void Main()
{
string input;
while((input=Console.ReadLine()).Length>0)
{
int n = Int32.Parse(input);
int result = (n-1)%8;
result = (result<4) ? (result+1) : (9-result);
Console.WriteLine(result);
}
}
==========根据追加描述完善答案================
1 2 3 4
8 7 6 5
9 10 11 12
16 15 14 13
以8为周期循环反复的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
思路:因为大拇指、无名指不重复,所以以手指正向1-4,反向5-2为整数计算就是8个手指头,也就是以大拇指为重复计数开始一轮为8个手指。只要你输入的数除以8,剩下的余数按1-4,5-2去判断就知道停留在哪个手指了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是个好问题
楼上QXYSLXH同学回答的思路很好,但有一点可能写错了"正向1-4,反向5-2",貌似应该是"正向1-4,反向5-8"
也就是说:
------------------------------------
拇指 | 1 |
----------------------------------
食指 | 2 | 8(0)
----------------------------------
中指 | 3 | 7
----------------------------------
无名指 | 4 | 6
----------------------------------
小指 | 5 |
------------------------------------
计算方法:
先用给定的数除以8得到结果,不用管商是多少,直接看余数,然后查上面的表对应的指头,就是最后停留的手指了。(如果余数为0,那么停留的就是食指)
楼上QXYSLXH同学回答的思路很好,但有一点可能写错了"正向1-4,反向5-2",貌似应该是"正向1-4,反向5-8"
也就是说:
------------------------------------
拇指 | 1 |
----------------------------------
食指 | 2 | 8(0)
----------------------------------
中指 | 3 | 7
----------------------------------
无名指 | 4 | 6
----------------------------------
小指 | 5 |
------------------------------------
计算方法:
先用给定的数除以8得到结果,不用管商是多少,直接看余数,然后查上面的表对应的指头,就是最后停留的手指了。(如果余数为0,那么停留的就是食指)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个题可真是个好题啊.
wlclass同学的提供思路很好.
wlclass同学的提供思路很好.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询