比赛 | ||
[ Submit Code ] [ Top 20 Runs ] [ Runs Status ] | ||
Acceteped : 942 | Submit : 2142 | |
Time Limit : 1000 MS | Memory Limit : 65536 KB | |
Description | ||
比赛题目描述有n个人要进行比赛,比赛规则如下:
比如有5个人参加比赛,第一轮举办2场,剩余3人进入第二轮,第二轮1场,剩余2人进入第三轮,第三轮举办1场决出冠军,所以一共要办4场比赛。 请问一共要举行几轮多少场比赛? 输入第一行是一个整数K,表示样例的个数。 以后每行一个样例,为n(1≤n≤1000000000) 输出每行输出两个整数,轮数和比赛场数,中间用一个空格隔开。 样例输入2 1 5 样例输出0 0 3 4 |
#include<stdio.h>
int main()
{
int K;
scanf("%d",&K);
while(K--){
int n;
scanf("%d",&n);
int l=0,c=0,rs;
rs=n;
if(n==1){printf("0 0\n");
continue;}
while(rs>1){
if(rs%2==0){
c+=rs/2;
rs=rs/2;
l++;
}
if(rs%2==1){
c+=(rs-1)/2;
rs=(rs+1)/2;
l++;
}
}
printf("%d %d\n",l,c);
}
return 0;
}