最小差值
   
    问题描述
   
    问题描述
    
    给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。
    
    输入格式
    
    输入第一行包含一个整数n。
    
    第二行包含n个正整数,相邻整数之间使用一个空格分隔。
    
    输出格式
    
    输出一个整数,表示答案。
    
    样例输入
    
    5
    
    1 5 4 8 20
    
    样例输出
    
    1
    
    样例说明
    
    相差最小的两个数是5和4,它们之间的差值是1。
    
    样例输入
    
    5
    
    9 3 6 1 3
    
    样例输出
    
    0
    
    样例说明
    
    有两个相同的数3,它们之间的差值是0.
    
    数据规模和约定
    
    对于所有评测用例,2 ≤ n ≤ 1000,每个给定的整数都是不超过10000的正整数。
   
    分析
   
很简单,排序然后 后一个-前一个 找到最小的就行了
    游戏
   
    问题描述
   
    有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。
    
    游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为k的倍数或其末位数(即数的个位)为k,则该小朋友被淘汰出局,不再参加以后的报数。当游戏中只剩下一个小朋友时,该小朋友获胜。
    
    例如,当n=5, k=2时:
    
    1号小朋友报数1;
    
    2号小朋友报数2淘汰;
    
    3号小朋友报数3;
    
    4号小朋友报数4淘汰;
    
    5号小朋友报数5;
    
    1号小朋友报数6淘汰;
    
    3号小朋友报数7;
    
    5号小朋友报数8淘汰;
    
    3号小朋友获胜。
   
    给定n和k,请问最后获胜的小朋友编号为多少?
    
    输入格式
    
    输入一行,包括两个整数n和k,意义如题目所述。
    
    输出格式
    
    输出一行,包含一个整数,表示获胜的小朋友编号。
    
    样例输入
    
    5 2
    
    样例输出
    
    3
    
    样例输入
    
    7 3
    
    样例输出
    
    4
    
    数据规模和约定
    
    对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ k ≤ 9。
   
    分析
   
    很像约瑟夫环,不过这个报数是连续的,不用重新从1开始
    
    用数组模拟游戏过程就可以,当淘汰人数==n-1的时候循环停止。
    
    一开始90,是没有考虑k==1的情况,这个时候内部的for循环整个都走完了,需要额外加一个break判断
   
    代码
   
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
#include<cctype>
using namespace std;
const int maxx = 1000;
int kids[maxx + 5];
int main()
{
    int n, k;
    while (cin>>n>>k)
    {
        for (int i = 1; i <= n; i++)kids[i] = 1;
        int out = 0,num = 1;
        while (out<n-1)
        {
            for (int i = 1; i <= n; i++)
            {
                if (kids[i]) 
                { kids[i] = num; 
                if (num%k == 0 || num % 10 == k) { kids[i] = 0; out++; }
                num++; }
                if (out == n - 1)break;
            }
        }
        for (int i = 1; i <= n; i++)
            if (kids[i])printf("%d\n", i);
    }
} 
