CSU 1101: 报数游戏(水题)

来源:互联网 发布:淘宝虚拟现实vr购物 编辑:程序博客网 时间:2024/06/05 07:03

1101: 报数游戏

        Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: 1135     Solved: 364    

Description

n个人站成一行玩一个报数游戏。所有人从左到右编号为1到n。游戏开始时,最左边的人报1,他右边的人报2,编号为3的人报3,等等。当编号为n的人(即最右边的人)报完n之后,轮到他左边的人(即编号为n-1的人)报n+1,然后编号为n-2的人报n+2,以此类推。当最左边的人再次报数之后,报数方向又变成从左到右,依次类推。 
为了防止游戏太无聊,报数时有一个特例:如果应该报的数包含数字7或者是7的倍数,他应当用拍手代替报数。下表是n=4的报数情况(X表示拍手)。当编号为3的人第4次拍手的时候,他实际上数到了35。 
给定n,m和k,你的任务是计算当编号为m的人第k次拍手时,他实际上数到了几。 

Input

输入包含不超过10组数据。每组数据占一行,包含三个整数n,m和k(2<=n<=100, 1<=m<=n, 1<=k<=100)。输入结束标志为n=m=k=0。 
 

Output

对于每组数据,输出一行,即编号为m的人第k次拍手时,他实际上数到的那个整数。 

Sample Input

4 3 14 3 24 3 34 3 40 0 0

Sample Output

17212735

Hint

Source

湖南省第七届大学生计算机程序设计竞赛

想法:

水题

代码:

#include<stdio.h>
#include<string.h>
int judg(int n)
{
    if(n%7==0)
    {
        return 1;
    }
    int t;
    while(n>0)
    {
      t=n%10;
      n=n/10;
      if(t==7)
        return 1;
    }
    return 0;
}
int main()
{
    int n,m,k;
    while(scanf("%d%d%d",&n,&m,&k)&&n+m+k)
    {
      int i,j;
      int t=m;
      int count=0;
      if(judg(m)&&k==1)
      {
          printf("%d",m);
          continue;
      }
      if(judg(m))
      {
          count++;
      }
      if(m!=1&&m!=n)
      {
      for(i=1;i<=100000;i++)
      {
          if(i%2!=0)
          {
            t=t+(n-m)*2;
            //printf("%d\n",t);
            if(judg(t))
            {
               count++;
            }
          }
          else
          {
           t=t+(m-1)*2;
           //printf("%d\n",t);
           if(judg(t))
           {
              count++;
           }
          }
          if(count==k)
          {
              printf("%d\n",t);
              break;
          }


      }
      }
     else
      {
          for(i=1;i<10010;i++)
          {
              t=t+(n-1)*2;
              if(judg(t))
              {
                  count++;
              }
              if(count==k)
              {
                  printf("%d\n",t);
                  break;
              }
          }
      }
    }
    return 0;
}

原创粉丝点击