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个开始,又从第一个手指头开始数?!问题了解不是很清楚
展开
 我来答
仙戈雅3n
2014-11-03 · TA获得超过5790个赞
知道大有可为答主
回答量:2398
采纳率:75%
帮助的人:895万
展开全部

别简单问题复杂化了,这个问题小学生都会做的题------数一数,看一看:

拇  食    中   无  小

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;

            }
        }

    }
百度网友cfe4d0f
2014-11-07 · TA获得超过1502个赞
知道小有建树答主
回答量:937
采纳率:100%
帮助的人:863万
展开全部

楼下可能理解的有误 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为周期循环反复的

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QXYSLXH
2014-10-31 · TA获得超过247个赞
知道小有建树答主
回答量:194
采纳率:100%
帮助的人:127万
展开全部
思路:因为大拇指、无名指不重复,所以以手指正向1-4,反向5-2为整数计算就是8个手指头,也就是以大拇指为重复计数开始一轮为8个手指。只要你输入的数除以8,剩下的余数按1-4,5-2去判断就知道停留在哪个手指了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bcd45bd
2014-11-02 · TA获得超过214个赞
知道小有建树答主
回答量:216
采纳率:100%
帮助的人:160万
展开全部
这是个好问题
楼上QXYSLXH同学回答的思路很好,但有一点可能写错了"正向1-4,反向5-2",貌似应该是"正向1-4,反向5-8"

也就是说:
------------------------------------
拇指 | 1 |
----------------------------------
食指 | 2 | 8(0)
----------------------------------
中指 | 3 | 7
----------------------------------
无名指 | 4 | 6
----------------------------------
小指 | 5 |
------------------------------------
计算方法:
先用给定的数除以8得到结果,不用管商是多少,直接看余数,然后查上面的表对应的指头,就是最后停留的手指了。(如果余数为0,那么停留的就是食指)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Sxzy灬丨小柒
2014-11-05 · TA获得超过623个赞
知道小有建树答主
回答量:1223
采纳率:50%
帮助的人:278万
展开全部
这个题可真是个好题啊.
wlclass同学的提供思路很好.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式