问题 A

更新时间:2023-03-18 02:31:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

问题 F: 幸运数字

时间限制: 1 Sec 内存限制: 128 MB

提交: 452 解决: 187 [提交][状态][讨论版]

题目描述

有人说你的手机号码蕴含着你的幸运数字,只要你将手机号所有的数字全部加起来。。。呃,显然结果不可能是个位数。那么请你再加一次(即将上一次的累加和的每一位数字再全部累加起来),直到只剩一个数字为止,这个数字就是你的幸运数字啦。哇哈哈,你信吗?

输入

输入多组测试数据,每组数据为一行你的手机号码。输入0表示结束。

输出

请输出你的幸运数字吧!

样例输入

13965847589 13069851234 0

样例输出

2 6

提示

我只想知道,你怎么处理手机号码的?

问题 D: 可怜的xiaoC★★★

时间限制: 1 Sec 内存限制: 128 MB

提交: 469 解决: 197 [提交][状态][讨论版]

题目描述

20岁对于xiaoC来说确实不同寻常,刚过完20岁的他似乎也看透了的人世间的种种。 沉默、寡言、孤寂似乎已经代替了他以前的乐观与开朗。看到整天胡言乱语的他,他的朋友都非常担心。现在他的朋友们想了一下还是请学弟学妹们写个程序统计一下xiaoC的言语,看看他是不是真的crazy!!! 要求:输入4行全部由大写字母组成的文本,输出一个垂直直方图,给出每个字符出现的次数。注意:只用输出字符的出现次数,不用输出空白字符,数字或者标点符号的输出次数。

输入

输入包括4行由大写字母组成的文本,每行上字符的数目不超过80个。 Output 输出包括若干行。其中最后一行给出26个大写英文字母,这些字母之间用空格隔开。前面的几行包括空格和星号,每个字母出现几次,就在这个字母的上方输出一个星号。注意:输出的第一行不能是空行。

输出

输出包括若干行。其中最后一行给出26个大写英文字母,这些字母之间用空格隔开。前面的几行包括空格和星号,每个字母出现几次,就在这个字母的上方输出一个星号。注意:输出的第一行不能是空行。

样例输入

NI JI JIANG YAO QU BEIHANG! NI HAI HUI JI QI WO ME?

NA TIAN DE SHI QING WO ZHI NENG SHUO DUI BU QI! DA JIE YI DING YAO KAI XIN DIAN!

样例输出

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

提示

[提交][状态][讨论版]

问题 A: 手动字符串比较(指针题)

时间限制: 1 Sec 内存限制: 32 MB

提交: 125 解决: 75 [提交][状态][讨论版]

题目描述

编写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为strcmp(char *p1,char *p2),设p1指向字符串s1,p2指向字符串s2。要求当s1=s2时,返回值为0;(s1,s2长度相等并且不超过100) 若s1!=s2,返回它们两者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第2个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值,反之输出负值。(本题要求用指针来做)

输入

第一行为N,表示接下来有N组测试数据。接下来的N行表示N组测试数据,每组测试数据包含两个字符串,中间用空格隔开,并且保证每个字符串中的字符都是小写字母。

输出

输出两个字符串比较的结果。

样例输入

2

abcdef aaaaaa a z

样例输出

1 -25

#include {

int i; i=0;

while(*(p1+i)==*(p2+i)) {

if(*(p1+i++)=='\\0') {

return 0; }

return (*(p1+i)-(*(p2+i))); }

int main() { }

int n,i;

char s1[100],s2[100],*p1,*p2; p1=s1; p2=s2;

scanf(\,&n); getchar(); for(i=0;i

scanf(\,s1,s2);

printf(\,strcmp(s1,s2)); }

int strcmp(char *p1,char *p2)

问题 B: 统计字串出现次数(数组or指针)[易] (测

试数据完善版)

时间限制: 1 Sec 内存限制: 128 MB

提交: 287 解决: 186 [提交][状态][讨论版]

题目描述

计算字符串中子串出现的次数。

输入:输入以空格相隔的两个字符串(字符数不大于20个),敲回车。 输出:统计第一个字符串中第二个字符串出现的次数。

输入

Goodoo o

输出

4

样例输入

sdsdsdsd sd

样例输出

4

问题 C: 大小数相加(字符串+指针)

时间限制: 1 Sec 内存限制: 128 MB

提交: 432 解决: 223 [提交][状态][讨论版]

题目描述

给你两个正的小数A和B,你的任务是计算出A+B的值。

输入

本题目包含多组测试数据,请处理到文件结束。

每一组测试数据在一行里面包含两个长度不大于400的正小数A和B。

输出

请在一行里面输出输出A+B的值,请输出最简形式。详细要求请见Sample Output。

样例输入

1.1 2.9

1.1111111111 2.3444323343 1 1.1

样例输出

4

3.4555434454 2.1

提示

提示问题 D: 将字符串插入到另一个字符串的指定

位置(串)

时间限制: 1 Sec 内存限制: 128 MB

提交: 182 解决: 107 [提交][状态][讨论版]

题目描述

将字符串t插入到字符串s中,在位置pos后插入。不得使用字符串操作函数,输出组合成的字符串。

输入

输入两个字符串(t和s)和要插入的位置(pos)

输出

输出组合后的字符串

样例输入

qwe jij 3

样例输出

Jijqwe

2014年度C语言程序设计大赛暨ACM集训队招新赛开始报名了,详情戳

问题 E: 伯努利装错信封问题-综合[难]

时间限制: 30 Sec 内存限制: 128 MB

提交: 490 解决: 234 [提交][状态][讨论版]

题目描述

某人写了n封信,同时为每一封信写1个信封,共n个信封。如果把所有的信都装错了信封,问共有多少种?(这是组合数学中有名的错位问题。著名数学家伯努利(Bernoulli)曾最先考虑此题。后来,欧拉对此题产生了兴趣,称此题是“组合理论的一个妙题”,独立地解出了此题)

试编程求出完全装错情形的所有方式及其总量s。例如,输入n=3,即有3封信需要装入信封,完全装错的一种方式可以表示为312,表示第1封信装入第3个信封,第2封信装入第1个信封,第3封信装入第2个信封。对于n=3,完全装错的方式共有2种,分别是312和231.

输入

输入一个正整数n(2<=n<=6)

输出

输出完全装错情形的所有方式以及装错方式的总量s (每行输出5种方式,一行中的相邻两种方式之间用1个空格隔开。装错方式输出时,从小到大排列,见输出样例)。

样例输入

4

样例输出

2143 2341 2413 3142 3412 3421 4123 4312 4321 s=9

提示

问题 C: 递归求组合(函数)[易]

时间限制: 2 Sec 内存限制: 128 MB

提交: 1473 解决: 768 [提交][状态][讨论版]

题目描述

已知计算组合的公式如下,用递归算法写出一个计算组合Cmn的值的函数zh(m,n),并写出主函数调用该函数。

输入

两个整数 m,n(m>=n)

输出

组合值

样例输入

4 2

样例输出

6

提示

#include int he(int c) {

if(c==1) return 1; if(c>1) return c*he(c-1); }

int zh(int m,int n) { if(n==0)

return 1; if(n==1) return m; if(n>1)

return zh(m-1,n-1)+he(m-1)/he(n); }

int main() { int m,n,i;

scanf(\ %d\i=zh(m,n); printf(\ }

问题 D: 邮资范围(数组 or +函数)[中]

时间限制: 1 Sec 内存限制: 128 MB

提交: 822 解决: 421 [提交][状态][讨论版]

题目描述

我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的一张或几张的组合,可以满足不同邮件的不同的邮资。 现在,邮局有4种不同面值的邮票。在每个信封上最多能贴5张邮票,面值可相同,可不同。

输入

四种邮票的面值。

输出

用这四种面值组成的邮资最大的从1开始的一个连续的区间。

说明:如结果为10,则表明使用4张邮票可组合出1、2、3、4、5、6、7、8、9、10这些邮资。

样例输入

1 2 3 4

样例输出

20.

提示

#include int main() { int m[5],i,a,b,c,d,t; for (i=1;i<=4;i++) scanf(\ for (i=1;i<100;i++) { t=0; for (a=0;a<=5;a++) { for (b=0;b<=5-a;b++) { for (c=0;c<=5-a-b;c++) { for (d=0;d<=5-a-b-c;d++) { if (i==m[1]*a+m[2]*b+m[3]*c+m[4]*d) {t=1;break;} } if (t==1) {break;} } if (t==1) {break;} } if (t==1) {break;} }

}

if (t==0) { printf(\ break; } } return 0;

本文来源:https://www.bwwdw.com/article/10rf.html

Top