1195: 第七届“真我风采”竞赛题目:报数
题目描述
N个人(0<N<9)站成一排从1开始报数。报数的次序为从左向右,再从右向左,循环往复。
输入正整数N,K,输出报到K的人是谁
输入
两个正整数N,K,其中0<N<9
输出
报到整数K的人,用大写英文字母表示
样例输入
2 15
样例输出
A 思路:由于只要报一人出来就好了所以也不是特别难,但是啊但是,还有一种循环节的方法,因为有N个人,并且是从左往右再从右往左,所以每N-1个人就是一个循环节,只是 开始的人不一样罢了,一个是首一个是尾,根据这个思路可以不用循环写。不过由于这个方法的特殊性,要考虑一下N是不是等于1的情况 我也是因为这种方法才发这道题的。大家可以参详一下,不懂可以在评论区问我(其实我也不懂,莫名其妙写出来的)代码: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int symbol[8+5]; int main() { int N; int K; scanf("%d%d",&N,&K); if(N!=1) { K--; int bei=K/(N-1); if(bei%2==0) printf("%c",'A'+K%(N-1)); else printf("%c",('A'-1+N)-K%(N-1)); } else printf("A"); return 0; }