2.使用函数累加由n个a构成的整数之和:输入两个正整数a和n,求a+aa+aaa+aa……a(n个a)之和。要求定义并调用函数fn(a,n),它的功能是返回aa……a(n个a)。
#include<stdio.h>
int fn(int a, int n) {
int temp = 0;
for (int i = 0; i < n; i++) {
temp = temp * 10 + a;
}
return temp;
}
int main() {
int a, n, sum=0;
printf("enter a:");
scanf("%d", &a);
printf("enter n:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum+=fn(a, i);
}
printf("the summery is:%d", sum);
return 0;
}
3.使用函数输出指定范围内的完数:输入两个正整数m和n(1≤m,n≤1000),输出m和n之间的所有完数,完数就是因子和它本身相等的数。要求定义并调用函数factorsum(number),它的功能是返回number的因子和。例如,factorsum(12)的返回值是16(1+2+3+4+6)。
#include<stdio.h>
int factorsum(int number) {
int i,sum=0;
for (i = 1; i <= number / 2; i++){ /*注意i作为除数时从1开始*/
if (number % i == 0) {
sum += i;
}
}
return sum;
}
int main() {
int m, n;
printf("enter m:");
scanf("%d", &m);
if (m < 1) {
printf("wrong number\n");
}
printf("enter n:");
scanf("%d", &n);
if (n > 1000) {
printf("wrong number\n");
}
for (int i = m; i <= n; i++) {
if (factorsum(i) == i) {
printf("%d", i);
}
}
return 0;
}
4.使用函数输出指定范围内的斐波那契数:输入两个正整数m和n(1≤m,n≤1000),输出m~n之间所有的斐波那契数。要求定义并调用函数fib(n),它的功能是返回第n项斐波那契数。
#include<stdio.h>
int fib(int n) {
if (n <= 1) {
return n;
}
else {
return fib(n - 1) + fib(n - 2); /*斐波那契数列递推公式*/
}
}
int main() {
int m, n;
printf("enter m n(1≤m,n≤1000):");
scanf("%d %d", &m, &n);
for (int i = m; i <=n; i++) {
if (fib(i) >= m && fib(i) <= n) {
printf("%d", fib(i));
}
}
return 0;
}
6.使用函数打印一个整数的逆序数:输入一个整数,将它逆序输出。要求定义并调用函数reverse(number),它的功能是返回number的逆序数。如reverse(12345)返回的是54321。
#include<stdio.h>
int reverse(int number) {
int temp=0;
while (number != 0) {
temp = temp * 10 + number % 10;
number /= 10;
}
return temp;
}
int main() {
int num;
printf("enter a number:");
scanf("%d", &num);
printf("the reversed number is:%d", reverse(num));
return 0;
}