1.本题要求实现一个函数,对一个整数进行按位顺序输出。
函数接口定义:
void printdigits( int n );
函数printdigits
应将n
的每一位数字从高位到低位顺序打印出来,每位数字占一行。
裁判测试程序样例:
#include <stdio.h>
void printdigits( int n );
int main()
{
int n;
scanf("%d", &n);
printdigits(n);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
12345
输出样例:
1
2
3
4
5
代码:
void printdigits(int n)
{
if (n < 10)
{
printf("%d\n", n);
}
else
{
printdigits(n / 10);
printf("%d\n", n % 10);
}
}
连除,使输出时的是从高位到低位
2.请编写函数,用递归方法求自然数各位数字之和。
函数原型
int SumDigit(int number);
说明:参数 number 为自然数。函数值为 number 的各位数字之和。若 number 为零,则函数值为零。
裁判程序
#include <stdio.h>
int SumDigit(int number);
int main()
{
int n;
scanf("%d", &n);
printf("%d\n", SumDigit(n));
return 0;
}
/* 你提交的代码将被嵌在这里 */
要求:用递归方法完成函数的设计,不得使用循环语句。
输入样例
25173
输出样例
18
代码:
int SumDigit(int number)
{
if (number < 10)
{
return number;
}
else
{
return number%10+ SumDigit(number / 10);
}
}
两个题很像,都是分割了位数,联想着记