• C语言基础算法复习


    001   求pi的近似值的问题

    1. #include <stdio.h>
    2. #include <math.h>
    3. int main()
    4. {
    5. int i;
    6. double sum;
    7. for(sum=0,i=1;1.0/pow(i,2)>=1e-5;++i)
    8. sum+=1.0/pow(i,2);
    9. printf("%lf\n",sqrt(sum*6));
    10. return 0;
    11. }

    002;

    水仙花数问题

    001 如果题目没有给出具体范围,而是让判断一个数是否为水仙花数;

    具体code as follow;

    1. //题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
    2. //例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
    3. #include<stdio.h>
    4. int main()
    5. {
    6. int n,i;
    7. int a,b,c;
    8. scanf("%d",&n);
    9. for(i=1;; i++)
    10. {
    11. a=n%10;
    12. b=(n/10)%10;
    13. c=n/100;
    14. if(a*a*a+b*b*b+c*c*c==n)
    15. {
    16. printf("%d是水仙花数",n);
    17. break;
    18. }
    19. else
    20. printf("no");
    21. break;
    22. }
    23. return 0;
    24. }

    002 题目给出了具体范围,这样的话就相对来说简单一点了

    1. // 100-1000之间的水仙花数
    2. #include<stdio.h>
    3. #include<math.h>
    4. int main()
    5. {
    6. int i;
    7. int a,b,c;
    8. for(i=100;i<1000;i++)
    9. {
    10. a=i%10;
    11. b=(i/10)%10;
    12. c=i/100;
    13. if(pow(a,3)+pow(b,3)+pow(c,3)==i)
    14. printf("%d,",i);
    15. }
    16. return 0;
    17. }

     

    003

    待更

    003 斐波那契数列问题

    1. #include<stdio.h>
    2. int main()
    3. {
    4. int i,f1=1,f2=1,f3,num;
    5. printf("%5d %5d",f1,f2);
    6. num=2;
    7. for(i=1; i<=18; i++)
    8. {
    9. f3=f1+f2;
    10. f1=f2;
    11. f2=f3;
    12. num++;
    13. printf("%5d",f3);
    14. if(num%4==0) printf("\n");
    15. }
    16. return 0;
    17. }
    1. //#输数斐波那契数列的前20项 f1=1,f2=2,f3=f1+f2,f4=f2+f3....
    2. #include<stdio.h>
    3. int main()
    4. {
    5. int i,f1=1,f2=1;
    6. for(i=1;i<=10;i++)
    7. {
    8. printf("%5d %5d",f1,f2);
    9. f1=f1+f2;
    10. f2=f1+f2;
    11. printf("\n");
    12. }
    13. return 0;
    14. }

    004 9*9乘法表

    1. //9*9乘法表
    2. #include<stdio.h>
    3. int main()
    4. {
    5. int sum = 1;
    6. for (int i = 1; i <= 9; i++)
    7. {
    8. for (int j = 1; j <= i; j++)
    9. {
    10. sum = i * j;
    11. printf("%d*%d=%d\t", i,j, sum);
    12. }
    13. printf("\n");
    14. }
    15. }

    001 以下是关于一些阶乘的问题

    1. #include<stdio.h>
    2. int main()
    3. {
    4. int n,i;
    5. long fac=1;
    6. scanf("%d",&n);
    7. for(i=1;i<=n;i++)
    8. fac=fac*i;
    9. printf("%d!=%d",n,fac);
    10. return 0;
    11. }

    打印一些图形

    1. #include<stdio.h>
    2. int main()
    3. {
    4. for (int i = 1; i <= 3; i++)
    5. {
    6. for (int j = 1; j <= i; j++)
    7. {
    8. printf("*");
    9. }
    10. printf("\n");
    11. }
    12. }

    1. #include<stdio.h>
    2. int main()
    3. {
    4. for (int i = 1; i <= 3; i++)
    5. {
    6. for (int j = 1; j <= 2*i-1; j++)
    7. {
    8. printf("*");
    9. }
    10. printf("\n");
    11. }
    12. }

    1. #include<stdio.h>
    2. int main()
    3. {
    4. for (int i = 1; i <= 5; i++)
    5. {
    6. for(int j=1;j<7-i;j++)//注意这里的条件最好不要小于外层循环
    7. printf(" ");
    8. for (int j = 1; j <= 2*i-1; j++)
    9. {
    10. printf("*");
    11. }
    12. printf("\n");
    13. }
    14. }

    数字金字塔

    1. #include<stdio.h>
    2. int main()
    3. {
    4. int i,j,n=4;
    5. for(i=1; i<=n; i++)
    6. {
    7. for(j=1; j<=n-i; j++)
    8. printf(" ");
    9. for(j=1;j<=i;j++)
    10. printf("%d",j);
    11. for(j=i;j>1;j--)
    12. printf("%d",j-1);
    13. printf("\n");
    14. }
    15. }

    字母转换问题

    1. #include<stdio.h>
    2. int main()
    3. {
    4. char ch;
    5. while(1)
    6. {
    7. ch=getchar();
    8. if(ch>='a'&&ch<='z')
    9. putchar(ch-32);
    10. else break;
    11. }
    12. return 0;
    13. }
    1. //输入的小写字母转换成大写字母,直到输入非小写字符为止
    2. #include<stdio.h>
    3. int main()
    4. {
    5. char ch;
    6. ch=getchar();
    7. while(ch>='a'&&ch<='z')
    8. {
    9. putchar(ch-32);
    10. ch=getchar();
    11. }
    12. return 0;
    13. }

    统计字符个数问题

    001

    1. #include <stdio.h>
    2. int main()
    3. {
    4. char c; // 临时字符
    5. int letters = 0; // 字母个数
    6. int spaces = 0; // 空格个数
    7. int digits = 0; // 数字字符
    8. int others = 0; // 其他字符
    9. printf("请输入一串字符,以回车结束:");
    10. while ((c = getchar()) != '\n')
    11. {
    12. if ((c >='a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
    13. {
    14. letters++;
    15. }
    16. else if (c >= '0' && c <= '9')
    17. {
    18. digits++;
    19. }
    20. else if (c == ' ')
    21. {
    22. spaces++;
    23. }
    24. else
    25. {
    26. others++;
    27. }
    28. }
    29. printf("字母个数为%d\n", letters);
    30. printf("数字个数为%d\n", digits);
    31. printf("空格个数为%d\n", spaces);
    32. printf("其他个数为%d\n", others);
    33. return 0;
    34. }

    002 以下是关于一些素数的问题

    1. #include<stdio.h>
    2. int main()
    3. {
    4. int n,i;
    5. scanf("%d",&n);
    6. for(i=2; i<n; i++)
    7. {
    8. if(n%i==0) break;
    9. }
    10. if (i == n)
    11. printf("%d 是素数。", n);
    12. else
    13. printf("%d 不是素数。", n);
    14. return 0;
    15. }
    1. // 输入一个大于3的整数,判断它是否为素数;只能被1和自身整数的正整数,1不是素数,2是素数
    2. #include<stdio.h>
    3. int main()
    4. {
    5. int n,i,k;
    6. scanf("%d",&n);
    7. k=sqrt(n);
    8. for(i=2;i<=k+1;i++)
    9. if(n%i==0)
    10. break;
    11. if(i>k+1)
    12. printf("%d是素数\n",n);
    13. else
    14. printf("%d不是素数\n",n);
    15. return 0;
    16. }
    1. #include<stdio.h>
    2. #include<math.h>
    3. int main()
    4. {
    5. int n,i,k;
    6. scanf("%d",&n);
    7. if(n<=1)
    8. printf("%d不是素数!\n",n);
    9. else if(n==2)
    10. printf("%d是素数!\n",n);
    11. else
    12. {
    13. k=sqrt(n);
    14. for(i=2; i<=k+1; i++)
    15. if(n%i==0)
    16. break;
    17. if(i>k+1)
    18. printf("%d是素数\n",n);
    19. else
    20. printf("%d不是素数\n",n);
    21. }
    22. return 0;
    23. }
    1. #include<stdio.h>
    2. int main()
    3. {
    4. int n,i,k,isprime=1;
    5. scanf("%d",&n);
    6. k=sqrt(n);
    7. for(i=2;i<=k+1;i++)
    8. if(n%i==0)
    9. {
    10. isprime=0;
    11. break;
    12. }
    13. if(isprime==1)
    14. printf("%d是素数\n",n);
    15. else
    16. printf("%d不是素数\n",n);
    17. return 0;
    18. }
    1. //100--200之间的素数
    2. #include<stdio.h>
    3. int main()
    4. {
    5. int n,i,k,isprime;
    6. for(n=100; n<=200; n++)
    7. {
    8. isprime=1;
    9. k=sqrt(n);
    10. for(i=2; i<=k+1; i++)
    11. if(n%i==0)
    12. {
    13. isprime=0;
    14. break;
    15. }
    16. if(isprime==1)
    17. printf("%d ",n);
    18. }
    19. return 0;
    20. }
  • 相关阅读:
    110.网络安全渗透测试—[权限提升篇8]—[Windows SqlServer xp_cmdshell存储过程提权]
    月薪12K,蝶变向新勇往直前,我通过转行软件测试实现月薪翻倍...
    PHP 如何创建一个 composer 包 并在 项目中使用自己的 composer sdk 包
    3分钟学会设计模式 -- 单例模式
    asp.net+sqlserver电费征缴管理系统C#项目
    Javascript机器学习教程
    C盘扩容好帮手——傲梅分区助手
    2021数学建模C题目– 生产企业原材料的订购与运输
    基于单片机设计的气压与海拔高度检测计(采用MPL3115A2芯片实现)
    [13] CUDA_Opencv联合编译过程
  • 原文地址:https://blog.csdn.net/xiaofangzainuli/article/details/133848854