硕成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;

}




相关推荐
谱写秋天4 分钟前
Qt 5.5 的安装与配置(使用 VSCode编辑)
开发语言·vscode·qt
项目申报小狂人5 分钟前
算法应用上新!自适应更新策略差分进化算法求解球形多飞行器路径规划问题,附完整MATLAB代码
开发语言·算法·matlab
阿珊和她的猫4 小时前
v-scale-scree: 根据屏幕尺寸缩放内容
开发语言·前端·javascript
PAK向日葵6 小时前
【算法导论】PDD 0817笔试题题解
算法·面试
fouryears_234177 小时前
Flutter InheritedWidget 详解:从生命周期到数据流动的完整解析
开发语言·flutter·客户端·dart
我好喜欢你~7 小时前
C#---StopWatch类
开发语言·c#
lifallen8 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研8 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计