C语言经典题目(26)

简介: C语言经典题目(26)

斐波那契数列

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

#include <stdio.h>
int main(int argc, char *argv[])
{
long f1, f2;
f1 = f2 = 1;
printf("\n输出斐波那契数列20项数据如下:\n");
for (int i = 1; i <= 20; i++)
{
printf("%12ld %12ld", f1, f2);
if (i % 2 == 0) /* 控制输出每行四个数字 */
printf("\n");
f1 = f1 + f2; /* 前两个月加起来赋值给第三个月 */
f2 = f1 + f2; /* 前两个月加起来赋值给第三个月 */
}
printf("\n");
return 0;
}

求最大公约数

①辗转相减法

int gcd(int a,int b)
{        
    while(a != b)
    {
        if(a>b)
        {
            a = a - b;
        }
        else 
        {
            b = b - a;
        }
    }
    return a;
}

②穷举法

int gcd(int x,int y)
{
       int temp = 0;
    for(temp = x ; ; temp-- )
    {
        if(x%temp == 0 && y%temp==0) 
               break; 
       }
    return temp;
}

③辗转相除法

在这里插入图片描述


int gcd(int x,int y){
    int rem;
    while(n > 0){
        rem = x % y;
        x = y;
        y = rem;
    }
    return x;            
}

④辗转相除法(递归)

int gcd(int x, int y) {
    if (x%y==0)
        return y;
    else 
    return gcd(y, x%y);
    }

2.枚举求解

知道了如何判断最大公约数,剩下的循环枚举就很简单了。

int main()
{
    int count = 0;
    for (int i = 1; i <= 2020; i++)
    {
        for (int j = 1; j <= 2020; j++)
        {
            if (gcd(i, j) == 1)
                count++;
        }
    }
    printf("%d", count);
    return 0;
}

分解质因数

将一个正整数分解质因数。
例:输入90
输出90=233*5。

#include <stdio.h>
int main()
{
int n, i;
printf("\nplease input a number:\n");
scanf_s("%d", &n);
printf("%d=", n);
for (i = 2; i <= n; i++)
{
while (n != i)
{
if (n%i == 0)
{
printf("%d*", i);
n = n / i;
}
else
break;
}
}
printf("%d", n);
return 0;
}
相关文章
|
5月前
|
C语言
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
|
5月前
|
存储 C语言 C++
C语言------------指针笔试题目深度剖析
C语言------------指针笔试题目深度剖析
42 1
|
10月前
2.C语言题目---字符串左旋
2.C语言题目---字符串左旋
71 1
|
10月前
|
存储
1.C语言题目---指针类(基础)
1.C语言题目---指针类(基础)
53 1
|
2月前
|
存储 编译器 C语言
【C语言】指针练习题目
【C语言】指针练习题目
|
4月前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
41 1
|
5月前
|
算法 编译器 API
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-1
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
4月前
|
C语言
c语言循环题目
c语言循环题目
|
5月前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
|
5月前
|
C语言
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)