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

}




相关推荐
海石32 分钟前
单调栈复健,顺便,牺牲一下吧,空间复杂度!一切献给AC
算法·leetcode
海石33 分钟前
JS击败94%,Hard题想不到动态规划,那就用数组和栈试试
算法·leetcode
天天进步201540 分钟前
Python全栈项目--校园食堂点餐与推荐系统
开发语言·python
aaPIXa62242 分钟前
C++模板元编程:编译期计算Fibonacci数列
java·开发语言·c++
eybk1 小时前
写一个可以编制pdf文件的python程序
开发语言·python·pdf
cui_ruicheng1 小时前
Python从入门到实战(八):封装、多态与抽象类
开发语言·python
apihz1 小时前
台风实时与历史详情查询免费 API 接口完整教程
android·开发语言·tcp/ip·dubbo·台风·天气预报
知无不研1 小时前
c语言和c++中的静态关键字
开发语言·c++·静态关键字
bksczm2 小时前
Linux之信号量(POSIX标准)
java·开发语言
吠品2 小时前
PHP里取月份最后一天的几种方式
java·开发语言·eureka