一个小女孩正在用左手手指数数,从1数到n。她从拇指算作1开始数起,然后,食指为2,中指为3,无名指为4,小指为5。接下来调转方向,无名指算作6,中指为7,食指为8,大拇指为9,如此反复。问最后会停在那个手指上?用编号1、2、3、4、5依次表示大拇指、食指、中指、无名指、小指。
输入格式:
输入多组数据。每组数据占一行,只包含一个整数n(1<=n<=1000000000)。
输出格式:
每组数据占一行,只包含一个介于1和5之间的整数,表示最后停留的手指。
难度一星 哈哈哈哈!!一次成功!
唯一注意的是 定义n要用 long long int。
算法很简单,很简单可以看出来规律。 看了看- -和网上的一样啊。。。。不过第一遍的时候我用的for 但是发现输入输出想错了。于是用了while
#include <iostream>
using namespace std;
int main()
{
int m,j;
long long n;
while (cin>>n!=0)//当n有意义的时候进行循环(输入/0可以结束程序)
{
if(n>5)
{
m=(n-5)/4+2;//判断行数
j=(n-5)%4;//寻找余数
if(m%2==0)cout<<5-j<<endl;//n=偶数,最大值在左边
else cout<<j+1<<endl;//n=奇数,最大值在右边
}
else cout<<n<<endl;
}
return 0;
}
哈哈哈哈哈哈哈哈哈