硕成C语言22【一些算法和数组的概念】

1.求水仙花数

cpp 复制代码
#include <stdio.h>

int main() {

       //求水仙花数:1.三位数 2.个位的立方+十位的立方+百位的立方=该数

       int unit, tens, hundreds;

       for (int i = 100; i < 1000; i++)//i表示该水仙花数

       {

              unit = i / 1 % 10;

              tens = i / 10 % 10;

              hundreds = i / 100 % 10;

              if (unit*unit*unit+tens*tens*tens+hundreds*hundreds*hundreds == i)

              {

                     printf("水仙花数有:%d\n", i);

              }

       }

       return 0;

}

2.判断一个数是几位数

思路:

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main() {

       //求一个数是几位数

       int num,count=0;

       printf("请输入一个数:");

       scanf("%d", &num);//scanf函数每次别忘了取地址值

       while (num > 0) {//直接用while,不用for,因为不知道起始条件、终止条件、和下一次循环执行的依据

              num /= 10;

              count++;//除一次,计数一次,条件是大于0

       }printf("该数是%d 位数\n", count);

       return 0;

} 快夸夸我,不要吝啬,来吧!!!!!!!!!
cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main() {

       //求和

       int sum=0,s=0,a,i,n;//例如:s=0时,a=2时,2=0*10+2 22=2*10+2

       printf("请输入一个数,然后输入个数:");

       scanf("%d%d", &a,&n);//scanf函数每次别忘了取地址值 n是个数 a是对应的数值

       for ( i = 1; i <=n; i++)

       {

              s = s * 10 + a;

              sum += s;

       }printf("求和为:%d", sum);

       return 0;

}

思路二:
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main() {

       //求和(思路二)

       int sum=0,s=0,a,i,n,t=1;//例如:s=0时,a=2时,2=0*10+2 22=2*10+2

       printf("请输入一个数,然后输入个数:");

       scanf("%d%d", &a,&n);//scanf函数每次别忘了取地址值 n是个数 a是对应的数值

       for ( i = 1; i <=n; i++)

       {

              s = a * t + s;

              t *= 10;

              sum += s;

       }printf("求和为:%d", sum);

       return 0;

}

4.输出前40项斐波那契数列

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main() {

       //输出前40项斐波那契数列

       int a=1, b=1, c;//设a是第一项,b是第二项,c是第三项

       for (int i = 1; i <= 40; i++)//i是项数

       {

              if (i == 1 || i == 2) {

                     c = 1;

              }if (i>2)

              {

                     c = a + b;

                     a = b;

                     b = c;

              }

              printf("%d ", c);

              if (i%5 == 0)

              {

                     printf("\n");//我希望的是,每输出5项数列,就换一行

              }

             

       }

       return 0;

}

6.求和

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main() {

       //求和

       int i, tag = 1,n;//tag用来处理正负号,i表示项数同时表示分母,s表示累加的结果

       double s = 0;

       printf("请输入你想要的项数n:");

       scanf("%d", &n);

       for ( i = 1; i <= n; i++)

       {

              s = s + 1.0/i * tag;

              tag = -tag;

       }printf("前%d项的结果是%lf", n, s);

       return 0;

}




相关推荐
Q741_147几秒前
C++ 面试基础考点 模拟题 力扣 38. 外观数列 题解 每日一题
c++·算法·leetcode·面试·模拟
deng-c-f6 分钟前
Linux C/C++ 学习日记(22):Reactor模式(二):实现简易的webserver(响应http请求)
linux·c语言·网络编程·reactor·http_server
一晌小贪欢10 分钟前
Python爬虫第7课:多线程与异步爬虫技术
开发语言·爬虫·python·网络爬虫·python爬虫·python3
W_chuanqi16 分钟前
RDEx:一种效果驱动的混合单目标优化器,自适应选择与融合多种算子与策略
人工智能·算法·机器学习·性能优化
ftpeak19 分钟前
《Cargo 参考手册》第二十二章:发布命令
开发语言·rust
L_090730 分钟前
【Algorithm】二分查找算法
c++·算法·leetcode
luckyPian33 分钟前
学习go语言
开发语言·学习·golang
靠近彗星33 分钟前
3.3栈与队列的应用
数据结构·算法
祁同伟.2 小时前
【C++】多态
开发语言·c++
朱嘉鼎3 小时前
C语言之可变参函数
c语言·开发语言