9、为程序清单9.8中的桉树to_binary()更一般化,可以在新的函数to_base_n()中使用第二个参数,且该参数的范围从2到20.然后,这个新函数输出第一个桉树在第二个参数规定的进制数下的数值结果。例如,to_base_n(129,8)的输出是201,也就是129的八进制数值。最后在一个完整的程序中对该函数进行测试。
#include <stdio.h>
#include <stdlib.h>
void to_base_n(unsigned long n,int s);
int main()
{
unsigned long number;
int n;
printf("这个程序用来计算十进制转其他进制\n");
printf("请输入需要转换的无符号数\n");
while(scanf("%ul",&number)==1)
{
printf("请输入需要转换的进制(2-10)\n");
scanf("%d",&n);
printf("%lu的%d进制数为:",number,n);
to_base_n(number,n);
printf("\n");
printf("请输入需要转换的无符号数\n");
}
printf("谢谢使用\n");
return 0;
}
void to_base_n(unsigned long n,int s)
{
int r;
r=n%s;
if(n>s)
to_base_n(n/s,s);
putchar('0'+r);
return;
}
10、编写并测试一个函数的Fibonacci(),在该函数中使用循环代替递归完成斐波那契数列的计算。
#include <stdio.h>
#include <stdlib.h>
int Fibonacci(int n);
int main()
{
int number;
printf("请输入一个正整数:\n");
scanf("%d",&number);
Fibonacci(number);
return 0;
}
int Fibonacci(int n)
{
long long count=1;
long long next=1;
long long sum=0,i;
int flag=0;
printf("%lld\n",count);
printf("%lld\n",next);
for(i=3;i<=n;i++)
{
flag++;
sum=count+next;
count=next;
next=sum;
printf("%lld\n",sum);
}
}