穿袜子问题

来源:互联网 发布:数据新闻播报特点 编辑:程序博客网 时间:2024/04/19 19:34

KazaQ's Socks

描述

题目描述:

KazaQ每天都穿袜子。

一开始,他的衣柜里有一对从1到n的袜子。

每天早晨,他选择柜子里编号最小的袜子穿。

每天晚上,他把今天穿的这双袜子放在篮子里。 如果篮子里有n-1双袜子,懒惰的KazaQ必须去洗袜子。 这些袜子将在明天晚上再次放在柜子里。

KazaQ想知道他在第k天应该穿几号袜子。

输入:

输入由多个测试样例组成。(约2000)

对于每种情况,有一行包含两个数字n,k(2≤n≤1e9,1≤k≤1e18)。

输出:

对于每个测试用例,输出“Case #x:y”一行(不含引号),其中x表示从1开始的样例编号,y表示相应样例的答案。

样例输入

3 7
3 6
4 9

样例输出

Case #1: 3
Case #2: 1
Case #3: 2



解题思路:这道题是有规律的,例如3双袜子,那么他穿的顺序就是123 12 13 12 13 12 13,当然四双就是1234 123 124 123 124.。。。规律就是这样,再根据输入的天数进而判断到底是第几双。

#include<stdio.h>int main(){int n,i=1,kr;long long k,kq;while(~scanf("%d%lld",&n,&k)){if(k <= n)printf("Case #%d: %lld\n",i,k);else{kq = (k-n) / (n-1);//求商 kr = (k-n) % (n-1);//求余数if(kq % 2 == 0){if(kr == 0)printf("Case #%d: %d\n",i,n);elseprintf("Case #%d: %d\n",i,kr);}else{if(kr == 0)printf("Case #%d: %d\n",i,n-1);elseprintf("Case #%d: %d\n",i,kr);}}i ++;}return 0;}


原创粉丝点击