北理C语言作业及答案.doc
文本预览下载声明
C语言作业3
43. 缩写展开
成绩: 10 / 折扣: 0.8
在保存字符串时,对出现在连续位置的若干个字符,如这些字符在ASCII表中也是连续出现,则可以将这些字符使用缩写形式进行保存,以节省保存空间。例如用A-Z表示ABCD...XYZ,1-5表示12345,c-f表示cdef。
输入:
包含缩写形式的字符串
输出:
将缩写形式进行还原后的字符串
说明:
只分别对大写字母、小写字母和数字进行压缩,对于形如9-A,a-C这样的缩写不进行处理。
测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示
0-9? 以文本方式显示
0123456789? 1秒 64M 0 测试用例 2 以文本方式显示
G-I? 以文本方式显示
GHI? 1秒 64M 0 测试用例 3 以文本方式显示
ABDG-K035-9abd-h? 以文本方式显示
ABDGHIJK0356789abdefgh? 1秒 64M 0 测试用例 4 以文本方式显示
abcdef ghi jkl mn? 以文本方式显示
abcdef ghi jkl mn? 1秒 64M 0 测试用例 5 以文本方式显示
1-1? 以文本方式显示
1-1? 1秒 64M 0 #include stdio.h
int main()
{
int i=0;
char s[100];
gets(s);
while(s[i]!=\0)
{
if(s[i+1]!=-)
{
printf(%c,s[i]);
i++;
}
else
{
if(s[i+2]s[i] ((s[i]=57)+(s[i+2]=57)!=1) (s[i]=57||s[i]=65))
{
while(s[i]!=s[i+2]){
printf(%c,s[i]++);
}
i+=2;
}
else printf(%c,s[i++]);
}
}
printf(\n);
return 0;
}
44. 函数递归
成绩: 10 / 折扣: 0.8
编写一个函数,使用递归算法求满足下述定义的整数序列的第n项。
1 当 n = 0 且 n = 4 时 f( n ) = f(n-1) + f(n-3) 当 n 4 且n为偶数 时 f(n-2) + f(n-4) 当 n 4 且n为奇数 时 -1 其他 函数原型如下:int findf(int n);参数说明:n 项数;返回值是第n项值。例如输入:10,输出:8
预设代码
前置代码
view plaincopy to clipboardprint?
/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */
#include stdio.h
int main()
{ int n,s, findf( int );
scanf(%d, n);
s = findf(n);
printf(%d\n, s);
return 0;
}
/* PRESET CODE END - NEVER TOUCH CODE ABOVE */
测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 以文本方式显示
10? 以文本方式显示
8? 无限制 64M 0 int findf(int n)
{
if(n=0n=4)
return 1;
else
if(n4n%2==0)
return findf(n-1) + findf(n-3);
else
if(n4n%2==1)
return findf(n-2) + findf(n-4);
else
return -1;
}
45. 大家再来做游戏
成绩: 10 / 折扣: 0.8
还是那个大家做游戏的问题:幼儿园的小朋友们刚学习了如何数数,阿姨在下课时组织大家一起玩游戏。规则如下:所有的小朋友绕成一圈,顺序排号,给出开始报数的小孩的编号后,从这个小朋友开始报数,凡是报到固定数字(例如5)的,都退出该游戏,
显示全部