【NYOJ 分类——语言入门】——汇总(七)

黑色帽子

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 1
描述
        最近发现了一个搞笑的游戏,不过目前还没玩过。一个舞会上,每个人头上都戴着一顶帽子,帽子只有黑白两种,黑的至少有一顶。每个人都能看到别人帽子的颜色,可是看不见自己的。主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的的黑色帽子,就打自己一个耳光( ,都很自觉,而且不许打别人的哦),开灯,关灯,开灯……。因为都不想打自己耳光,所以不确定的情况下都不会打自己的,现在有n顶黑色帽子,第几次关灯才会听到有人打自己耳光?
输入
第一行只有一个整数m(m<=100000),表示测试数据组数。
接下来的m行,每行有一个整数n(n<=100000000),表示黑色帽子的顶数。
输出
输出第几次关灯能听到耳光声,每组输出占一行。
样例输入
1
2
样例输出
2

来源
原创
上传者

ACM_杨延玺

 
#include
main(){char _[15];gets(_);while(gets(_))puts(_);}        

大小写互换

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 0
描述
      现在给出了一个只包含大小写字母的字符串,不含空格和换行,要求把其中的大写换成小写,小写换成大写,然后输出互换后的字符串。
输入
第一行只有一个整数m(m<=10),表示测试数据组数。
接下来的m行,每行有一个字符串(长度不超过100)。
输出
输出互换后的字符串,每组输出占一行。
样例输入
2
Acm
ACCEPTED
样例输出
aCM
accepted
来源
原创
上传者
ACM_杨延玺
 
#include
int main()
{
	int a,b,c,n;
	char x;
	scanf("%d",&n);
	getchar();
	while(n--)
	{
		while(scanf("%c",&x)&&x!='\n')
		{
			if(x>=97&&x<=122) printf("%c",x-32);
			else if(x<=90&&x>=64) printf("%c",x+32);
		}
		printf("\n");
	}
}        

小光棍数

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 1
描述
最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数。他已经知道了第一个小光棍数是471,471的三次方是104487111,现在他想知道第m(m<=10000000000)个小光棍数是多少?
输入
有多组测试数据。第一行一个整数n,表示有n组测试数据。接下来的每行有一个整数m。
输出
输出第m个小光棍数。
样例输入
1
1
样例输出
471
来源
原创
上传者
wmnwmn
 
#include
int main()
{
	long long a,b,c,d,e;
	scanf("%lld",&a);
	while(a--)
	{
		scanf("%lld",&b);
		printf("%lld\n",(b-1)*1000+471);
	}
	return 0;
}
        

九九乘法表

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 1
描述

小时候学过的九九乘法表也许将会扎根于我们一生的记忆,现在让我们重温那些温暖的记忆,请编程输出九九乘法表.

现在要求你输出它的格式与平常的 不同啊! 是那种反过来的三角形啦,具体如下图:


每两个式子之前用一个空格 隔开。。。

输入
第一有一个整数N,表示有N组数据(N<10)
接下来由N行,每行只有一个整数M(1<=M<=9);
输出
对应每个整数M,根据要求输出乘法表的前N行,具体格式参见输入输出样例和上图.
每两组测试数据结果之间有一个空行隔开,具体如输出样例。
样例输入
3
2
1
5
样例输出
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18

1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9

1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
来源
原创
上传者
ACM_赵铭浩
 
#include
int main()
{
	int t,n;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		for(int i=1;i<=n;i++){
			for(int j=i;j<10;j++)
				printf("%d*%d=%d ",i,j,i*j);
			printf("\n");
		}
	}
}        

A+B Problem III

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 1
描述
求A+B是否与C相等。
输入
T组测试数据。
每组数据中有三个实数A,B,C(-10000.0<=A,B<=10000.0,-20000.0<=C<=20000.0)
数据保证小数点后不超过4位。

输出
如果相等则输出Yes
不相等则输出No
样例输入
3
-11.1 +11.1 0
11 -11.25 -0.25
1 2 +4
样例输出
Yes
Yes
No
上传者
李文鑫
 
#include 
#include 
double a,b,c;
main()
{
	for(scanf("%lf",&a);~scanf("%lf%lf%lf",&a,&b,&c);puts(fabs(c-(a+b))<1e-6?"Yes":"No"));
}
        

The Famous Clock

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 1
描述

Mr. B, Mr. G and Mr. M are now in Warsaw, Poland, for the 2012’s ACM-ICPC World Finals Contest. They’ve decided to take a 5 hours training every day before the contest. Also, they plan to start training at 10:00 each day since the World Final Contest will do so. The scenery in Warsaw is so attractive that Mr. B would always like to take a walk outside for a while after breakfast. However, Mr. B have to go back before training starts, otherwise his teammates will be annoyed. Here is a problem: Mr. B does not have a watch. In order to know the exact time, he has bought a new watch in Warsaw, but all the numbers on that watch are represented in Roman Numerals. Mr. B cannot understand such kind of numbers. Can you translate for him?

输入
Each test case contains a single line indicating a Roman Numerals that to be translated. All the numbers can be found on clocks. That is, each number in the input represents an integer between 1 and 12. Roman Numerals are expressed by strings consisting of uppercase ‘I’, ‘V’ and ‘X’. See the sample input for further information.
输出
For each test case, display a single line containing a decimal number corresponding to the given Roman Numerals.
样例输入
I
II
III
IV
V
VI
VII
VIII
IX
X
XI
XII
样例输出
Case 1: 1
Case 2: 2
Case 3: 3
Case 4: 4
Case 5: 5
Case 6: 6
Case 7: 7
Case 8: 8
Case 9: 9
Case 10: 10
Case 11: 11
Case 12: 12
来源
HDU
上传者
ACM_宋志恒
 
#include
#include
#include
using namespace std;
mapm;
int main()
{
	m["I"]=1;
	m["II"]=2;
	m["III"]=3;
	m["IV"]=4;
	m["V"]=5;
	m["VI"]=6;
	m["VII"]=7;
	m["VIII"]=8;
	m["IX"]=9;
	m["X"]=10;
	m["XI"]=11;
	m["XII"]=12;
	string s;
	int c=0;
	while(cin>>s)
		cout<<"Case "<<++c<<": "<

谁是最好的Coder

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 0
描述
计科班有很多Coder,帅帅想知道自己是不是综合实力最强的coder。
帅帅喜欢帅,所以他选了帅气和编程水平作为评选标准。
每个同学的综合得分是帅气程度得分与编程水平得分的和。
他希望你能写一个程序帮他一下。
输入
数据有多组。
输入一个数n,代表计科班的总人数。
接下来有n行数,一行数有两个数a,b。
其中a代表该同学的编程水平,b代表该同学的帅气程度。
n=0表示输入结束。
输出
每组数据占一行,输出所有同学中综合得分最高的分数。
样例输入
5
9 10
7 11
1 6
5 7
3 5
2
7 3
7 6
0
样例输出
19
13
上传者
wsp0214
 
#include
main(){int n;while(scanf("%d",&n),n){int a,b,s=0;while(n--){scanf("%d%d",&a,&b);if(a+b>s) s=a+b;}printf("%d\n",s);}}        

奋斗的小蜗牛

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 1
描述
传说中能站在金字塔顶的只有两种动物,一种是鹰,一种是蜗牛。一只小蜗牛听了这个传说后,大受鼓舞,立志要爬上金字塔。为了实现自己的梦想,蜗牛找到了老鹰,老鹰告诉它金字塔高H米,小蜗牛知道一个白天自己能向上爬10米,但由于晚上要休息,自己会下滑5米。它想知道自己在第几天能站在金字塔顶,它想让你帮他写个程序帮助它。
输入
第一行有一个整数t,表示t组测试数据。
第二行一个整数H(0
输出
输出一个整数n表示小蜗牛第n天站在金字塔顶上
样例输入
2
1
5
样例输出
1
1
上传者
ACM_王孝锋
#include   
#include   
#include   
int a[100], b[101];  
int cmp(const void *a, const void *b){  
    return *(int *)b - *(int *)a;  
}  
  
int main(){  
    int n, m, i, count, t, j;  
    while(scanf("%d%d", &n, &m) == 2){  
        if(n == 0 || m == 0) continue;  
        for(i = 0; i != n; ++i)  
            scanf("%d", &a[i]);  
        qsort(a, n, sizeof(int), cmp);  
        for(i = 0, count = 0; i != n; ++i, count = 0){  
            for(j = i; j != n; ++j)  
                if(a[i] == a[j])  
                    ++count;  
                else break;               
            b[i + 1] = count;  
            i = j - 1;  
        }  
        while(m-- && scanf("%d", &t))  
            printf("%d\n", b[t]);  
        memset(b, 0, sizeof(b));  
    }  
    return 0;  
}  

万圣节派对

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 1
描述

万圣节有一个Party,XadillaX显然也要去凑热闹了。因为去凑热闹的人数非常庞大,几十W的数量级吧,自然要进场就需要有门票了。很幸运的,XadillaX竟然拿到了一张真·门票!这真·门票的排列规则有些奇怪:

  1. 门票号是由0~6组成的六位数(0~6这几个数字可重用)

  2. 每一个门票号的每一位不能有三个连续相同的数字(如123335是不行的)

  3. 每一个门票号相邻的两位相差必须在四以下(≤4)(如016245是不行的)

输入
第一行一个n,代表输入个数
接下去n行,每行两个数字x,y(x <= y)
输出
对于每个测试,输出x到y之间的门票编号。每个测试结尾之间空行。
样例输入
2
001001 001002
001011 001012
样例输出
001001
001002

001011
001012
来源
NBOJ-1004
上传者
勿念情
#include   
#include   
  
char str[7];  
  
bool Judge(int a){  
    int i = 0;  
    while(a){  
        str[i++] = a % 10 + '0';  
        if(str[i-1] > '6') return 0;  
        a /= 10;  
    }  
    while(i < 6) str[i++] = '0';  
    str[i] = '\0';  
    for(i = 1; i != 6; ++i){  
        if(str[i] == str[i+1] && str[i] == str[i-1]) return 0;  
        if(abs(str[i] - str[i-1]) > 4) return 0;  
    }  
    return 1;  
}  
  
int main(){  
    int t, a, b, i;  
    scanf("%d", &t);  
    while(t--){  
        scanf("%d%d", &a, &b);  
        for(i = a; i <= b; ++i)  
            if(Judge(i)) printf("%06d\n", i);  
        printf("\n");  
    }  
    return 0;  
}  

兰州烧饼

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 1
描述
烧饼有两面,要做好一个兰州烧饼,要两面都弄热。当然,一次只能弄一个的话,效率就太低了。有这么一个大平底锅,一次可以同时放入k个兰州烧饼,一分钟能做好一面。而现在有n个兰州烧饼,至少需要多少分钟才能全部做好呢?
输入
依次输入n和k,中间以空格分隔,其中1 <= k,n <= 100000
输出
输出全部做好至少需要的分钟数
样例输入
3 2
样例输出
3
提示
如样例,三个兰州烧饼编号a,b,c,首先a和b,然后a和c,最后b和c,3分钟完成
上传者
勿念情

#include  
int main()  
{  
    int n,k,sum,s;  
    while(scanf("%d%d",&n,&k)!=EOF)  
    {  
        if(n<=k&&n!=0)  
            sum=2;  
        else if(n==0)  
            sum=0;  
        else  
        {  
            s=2*n; //时间 总 和   
  
            if(s%k==0)     
                sum=s/k;  
            else  
                sum=s/k+1;  
        }  
        printf("%d\n",sum);  
    }  
    return 0;  
} 






你可能感兴趣的:(语言入门)