#include <stdio.h>
#include <stdlib.h>
#include <math.h>
//1.关于return语句
double c_area(double r)
{
return r*r*3.1416;
}
int main()
{
double v=2.4* c_area(3.24)/3.0;
printf("v=%.4lf\n",v);
}
//2.函数定义返回n!
int fact(int n)
{
int f=1,i;
for(i=1;i<=n;i++)
{
f*=i;
}
return f;
}
int main()
{
int i;
for(i=1;i<=10;i++)
{
printf("%d!=%d\n",i,fact(i));
}
return 0;
}
///3.完数
int isPerfectNumber(int n) {
int i, sum = 1;
if (n == 1) return 0; // 1不是完数
for (i = 2; i <= sqrt(n); i++) {//因为因子成对出现
if (n % i == 0) {
sum += i;
if (i != n / i) {
sum += n / i;
}
}
}
return sum == n;//1
}
int main() {
int i;
for (i = 1; i <= 10000; i++) {
if (isPerfectNumber(i)) {
printf("%d 是完数\n", i);
}
}
return 0;
}
/4.水仙花数
int shuixian(int n)
{
int i,sum=0;
int k=n;
for(i=0;i<3;i++)
{
sum+=pow(k%10,3);
k/=10;
}
if(sum==n)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int i;
for(i=100;i<1000;i++)
{
if(shuixian(i))
{
printf("%d是水仙花数\n",i);
}
}
return 0;
}
//5.判断斐波那契数列第n个数是不是素数
int is_prime(int num) {
if (num < 2)
{
return 0; // 不是素数
}
int i;
for ( i = 2; i <= sqrt(num); i++)
{
if (num % i == 0) {
return 0; // 不是素数
}
}
return 1; // 是素数
}
// 计算斐波那契数列的第n项
int fibonacci(int n) {
if (n == 1 || n == 2) {
return 1; // 前两项为1
}
int a = 1, b = 1, c,i;
for ( i = 3; i <= n; i++) {
c = a + b; // 计算下一项
a = b; // 更新前两项
b = c;
}
return b; // 返回第n项
}
// 主函数:调用其他函数并输出结果
int main() {
int n;
printf("请输入一个整数n(1 < n < 50):");
scanf("%d", &n);
if (n <= 1 || n >= 50)
{
printf("输入无效,n必须满足1 < n < 50。\n");
return 1; // 输入无效,退出程序
}
// 嵌套调用:先计算斐波那契数列的第n项,再判断是否为素数
int fib_num = fibonacci(n);
if (is_prime(fib_num)) {
printf("yes\n"); // 是素数
} else {
printf("%d不是素数\n", fib_num); // 不是素数,输出该数字
}
return 0;
}