11.19函数定义

#include <stdio.h>

int factorsum(int number);
void PrintPN(int m, int n);

int main() {
	int m, n;
	scanf("%d%d", &m, &n);
	if ( factorsum(m) == m )
		printf("%d is a perfect number\n", m);
	if ( factorsum(n) == n )
		printf("%d is a perfect number\n", n);
	PrintPN(m, n);
	return 0;
}


int factorsum(int number) {
	int i, j, sum = 0;
	for (i = 1; i < number; i++)

		if (number % i == 0)
			sum += i;
	return sum;

}
#include <stdio.h>
int factorsum(int number);
void PrintPN(int m, int n);

int main() {
	int m, n;
	scanf("%d%d", &m, &n);
	if ( factorsum(m) == m )
		printf("%d is a perfect number\n", m);
	if ( factorsum(n) == n )
		printf("%d is a perfect number\n", n);
	PrintPN(m, n);
	return 0;
}

/* 函数功能:计算 number 的所有因子之和。 */
int factorsum(int number) {
	int s = 0, i;
	for (i = 1; i < number; i++)
		if (number % i == 0)
			s = s + i;
	return s;
}

/*函数功能:打印输出[m ,n] 范围内的所有完数。*/
void PrintPN(int m, int n) {
	int number, i, no = 0;
	for (number = m; number <= n; number++) {
		if (factorsum(number) == number) {
			no++;
			printf("%d = 1", number);
			for (i = 2; i < number; i++)
				if (number % i == 0)
					printf(" + %d", i);
			printf("\n");
		}
	}
	if (no == 0)
		printf("No perfect number\n");
}
#include <stdio.h>
int fib( int n );
void PrintFN( int m, int n );

int main() {
	int m, n, t;
	scanf("%d%d%d", &m, &n, &t);
	printf("fib(%d) = %d\n", t, fib(t));
	PrintFN(m, n);
	return 0;
}

/* 函数功能:计算Fibonacci数列中的第n项的数值  */
int fib( int n ) {
	int f1, f2, f3, i;
	/* Fibonacci 数列的第1、2项数值 */
	if (n == 1 || n == 2)
		return 1;
	/* Fibonacci 数列的第 n(n>=3) 项数值  */
	f1 = 1;
	f2 = 1;
	for (i = 3; i <= n; i++) {
		f3 = f1 + f2;
		f1 = f2;
		f2 = f3;
	}
	return f3;
}

/* 函数功能:打印输出[m,n]范围内所有的Fibonacci数  */
void PrintFN( int m, int n ) {
	int fn, i, no = 0;
	for (i = 1; (fn = fib(i)) <= n; i++) {
		if (fn >= m) {
			no++;
			if (no == 1)
				printf("%d", fn);
			else
				printf(" %d", fn);
		}
	}
	if (no == 0)
		printf("No Fibonacci number\n");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值