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

a letter and a number

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 1
描述
we define f(A) = 1, f(a) = -1, f(B) = 2, f(b) = -2, ... f(Z) = 26, f(z) = -26;
Give you a letter x and a number y , you should output the result of y+f(x).
输入
On the first line, contains a number T(0 输出
for each case, you should the result of y+f(x) on a line
样例输入
6
R 1
P 2
G 3
r 1
p 2
g 3
样例输出
19
18
10
-17
-14
-4
上传者
苗栋栋
 
#include
main()
{
	int x,n;
	scanf("%d",&x);
	while(x--)
	{
		getchar();
		char c;
		scanf("%c %d",&c,&n);
	    if(c>=65&&c<=90) c=c-64;
		else c=0-(c-96);
		n=c+n;
		printf("%d\n",n);
		

	}
}        

字母统计

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 1
描述
现在给你一个由小写字母组成字符串,要你找出字符串中出现次数最多的字母,如果出现次数最多字母有多个那么输出最小的那个。
输入
第一行输入一个正整数T(0 随后T行输入一个字符串s,s长度小于1010。
输出
每组数据输出占一行,输出出现次数最多的字符;
样例输入
3
abcd
bbaa
jsdhfjkshdfjksahdfjkhsajkf
样例输出
a
a
j
来源
[路过这]原创
上传者

路过这

 
#include
#include
main()
{
	int x,i,max,q;
	char a[1011];
	scanf("%d",&x);
	getchar();
	while(x--)
	{
		int s[26]={0};
		gets(a);
		for(i=strlen(a)-1;i>=0;i--)
			s[a[i]-97]++;
		max=0;
		for(i=0;i<26;i++)
			if(max

计算球体积

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 1
描述
根据输入的半径值,计算球的体积。
输入
输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。(0 输出
输出对应的球的体积,对于每组输入数据,输出一行,计算结果四舍五入为整数
Hint:PI=3.1415926
样例输入
1
1.5
样例输出
4
14
来源
Trinity
上传者
张洁烽

#include 
#define PI 3.1415926
int main()
{ 
double r;
while(scanf("%lf",&r)!=EOF){
double m = 4*r*r*r*PI/3;
int n = (int)(m+0.5);
printf("%d\n",n);
}
return 0;
}

交换输出

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 1
描述
输入n(n<100)个数,找出其中最小的数,将它与最前面的数交换后输出这些数。(如果这个第一个数就是最小的数,则保持原样输出,如果最小的数有相同的按照前面的交换)
输入
输入数据有多组,每组占一行,每行的开始是一个整数n,表示这个测试实例的数值的个数,跟着就是n个整数。n=0表示输入的结束,不做处理。
输出
对于每组输入数据,输出交换后的数列,每组输出占一行。
样例输入
4 2 1 3 4
5 5 4 3 2 1
0
样例输出
1 2 3 4
1 4 3 2 5
来源
[张洁烽]原创
上传者
张洁烽


 
 
#include
#include
#include
using namespace std;
int data[110];
int main()
{
int n;
	while(cin>>n && n)
	{
		for(int i=0;i!=n;i++) cin>>data[i];
		iter_swap(data,min_element(data,data+n));
		copy(data,data+n,ostream_iterator(cout," "));
		cout<

16进制的简单运算

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 1
描述
现在给你一个16进制的加减法的表达式,要求用8进制输出表达式的结果。
输入
第一行输入一个正整数T(0 接下来有T行,每行输入一个字符串s(长度小于15)字符串中有两个数和一个加号或者一个减号,且表达式合法并且所有运算的数都小于31位
输出
每个表达式输出占一行,输出表达式8进制的结果。
样例输入
3
29+4823
18be+6784
4ae1-3d6c
样例输出
44114
100102
6565
来源
[路过这]原创
上传者
路过这
 
#include
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		int a,b,d;
		char c;
		scanf("%x%c%x",&a,&c,&b);
		if(c=='+') d=a+b;
		else d=a-b;
		if(d>=0)
			printf("%o\n",d);
		else printf("-%o\n",-d);
	}
} 
        

C小加 之 随机数

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 1
描述
ACM队的“C小加”同学想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(0
输入
第一行输入整数T(1 每组测试数据包括2行,
第1行为1个正整数,表示所生成的随机数的个数:N(0 第2行有N个用空格隔开的正整数,为所产生的随机数。
(随机数为题目给定的,不需要ACMer生成)
输出
输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。
第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
样例输入
1
10
20 40 32 67 40 20 89 300 400 15
样例输出
8
15 20 32 40 67 89 300 400
来源
RQNOJ
上传者
唐博
 
#include
#include
#include
#include
#include
using namespace std;
const int maxn=110;
int tab[maxn];
int main()
{
	 
	int t;cin>>t;
	while(t--){
		int n;cin>>n;
		for(int i=0;i(cout," "));cout<
  • 题目259
  • 题目信息
  • 运行结果
  • 本题排行
  • 讨论区

茵茵的第一课

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 0
描述

茵茵今年已经六年级了,爸爸给她报了一个学习程序设计的班。

第一节课上,老师讲的就是如何输入一个数,再原样输出出来。

以现在的你看来,挺容易的是不?
那么,就请你也写出一个一样的程序吧

输入
第一行是一个整数N(N<10)表示测试数据的组数)
接下来的n行 每行只有一个数(可能是小数,也可能是整数)
这个数的位数(整数位数+小数位数)不超过19位
输出
原样输出每个数,每输出占一行
样例输入
23.55
样例输出
3.55
来源
2008年小学生程序设计友谊赛试题
上传者
ACM_赵铭浩
 
#include
#include
int main()
{
	int n;
	char a[20];
	scanf("%d",&n);
	while(n--)
	{
		scanf("%s",a);
		printf("%s\n",a);
	}
	return 0;
}        

数数小木块

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

在墙角堆放着一堆完全相同的正方体小木块,如下图所示:


 

 因为木块堆得实在是太有规律了,你只要知道它的层数就可以计算所有木块的数量了。

现在请你写个程序 给你任一堆木块的层数,求出这堆木块的数量.

输入
第一行是一个整数N(N<=10)表示测试数据的组数)
接下来的n行 每行只有一个整数 ,表示这堆小木块的层数,
输出
对应每个输入的层数有一个输出,表示这堆小木块的总数量,每个输出占一行
样例输入
2
1
5
样例输出
1
35
来源
2008年小学生程序设计友谊赛试题
上传者
ACM_赵铭浩
 
#include 
int main()
{
	int n,t;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		printf("%d\n",n*(n+1)*(n+2)/6);
	}
}        

精 挑 细 选

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 1
描述
小王是公司的仓库管理员,一天,他接到了这样一个任务:从仓库中找出一根钢管。这听起来不算什么,但是这根钢管的要求可真是让他犯难了,要求如下:
1
  这根钢管一定要是仓库中最长的;
2
  这根钢管一定要是最长的钢管中最细的;
3
  这根钢管一定要是符合前两条的钢管中编码最大的(每根钢管都有一个互不相同的编码,越大表示生产日期越近)。
相关的资料到是有,可是,手工从几百份钢管材料中选出符合要求的那根……  
要不,还是请你编写个程序来帮他解决这个问题吧。
输入
第一行是一个整数N(N<=10)表示测试数据的组数)
每组测试数据的第一行 有一个整数m(m<=1000),表示仓库中所有钢管的数量,
之后m行,每行三个整数,分别表示一根钢管的长度(以毫米为单位)、直径(以毫米为单位)和编码(一个9位整数)。
输出
对应每组测试数据的输出只有一个9位整数,表示选出的那根钢管的编码,
每个输出占一行
样例输入
2
2
2000 30 123456789
2000 20 987654321
4
3000 50 872198442
3000 45 752498124
2000 60 765128742
3000 45 652278122
样例输出
987654321
752498124
来源
2008年小学生程序设计友谊赛试题
上传者
ACM_赵铭浩
 
#include
int main()
{
	int n,m,i,a,b,c,x,y,z;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d",&m);
		a=0;b=0;c=0;
		for(i=0;ia||x==a&&yc) { a=x;b=y;c=z; }
		}
		printf("%d\n",c);
	}
	return 0;
}        

国王的魔镜

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 1
描述
国王有一个魔镜,可以把任何接触镜面的东西变成原来的两倍——只是,因为是镜子嘛,增加的那部分是反的。

比如一条项链,我们用AB来表示,不同的字母表示不同颜色的珍珠。如果把B端接触镜面的话,魔镜会把这条项链变为ABBA。如果再用一端接触的话,则会变成ABBAABBA(假定国王只用项链的某一端接触魔镜)。

给定最终的项链,请编写程序输出国王没使用魔镜之前,最初的项链可能的最小长度。

输入
第一行是一个整数N(N<=10)表示测试数据的组数)
每组测试数据占一行 只有一个字符串(长度小于100),由大写英文字母组成,表示最终的项链。
输出
每组测试数据的输出只有一个整数,表示国王没使用魔镜前,最初的项链可能的最小长度。
样例输入
2
ABBAABBA
A
样例输出
2
1
来源
2008年小学生程序设计友谊赛试题
上传者
ACM_赵铭浩
 
#include
#include
main()
{
	int z,x,q,i;
	char a[101],t[51];
	scanf("%d",&z);
	getchar();
	while(z--)
	{
		gets(a);
		do
		{
			x=strlen(a);
			if(x%2) break;
			for(i=0;i







你可能感兴趣的:(语言入门,NYOJ,分类汇总,NYOJ,语言入门,ACM基础练习,80题基础)