北理C语言作业及答案3北理C语言作业及答案3
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
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
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>=0&&n<=4)
return 1;
else
if(n>4&&n%2==0)
return findf(n-1) + findf(n-3);
else
if(n>4&&n%2==1)
return findf(n-2) + findf(n-4);
else
return -1;
}45. 大家再来做游戏
成绩: 10 / 折扣: 0.8
还是那个大家做游戏的问题:幼儿园的小朋友们刚学习了如何数数,阿姨在下课时组织大家一起玩游戏。规则如下:所有的小朋友绕成一圈,顺序排号,给出开始报数