• 嵌入式培训学习历程第十天(休息日)


      今天,做了一下老师布置的习题。先放上面,明天,老师讲了,再优化。。

      1.使用递归的方式计算1 + 2  + 3 + 4+... +n 之和。

     #include <stdio.h>
      2 
      3 long long sum_number(int);
      4 
      5 int main(int argc, char *argv[])
      6 {
      7     int n;
      8     long long sum = 0;
      9 
     10     printf("Enter you want sum's best numbers : ");
     11     scanf("%d", &n);
     12 
     13     if(n < 0) {
     14         printf("Your Enter is Error!.
    ");
     15         return 0;
     16     }
     17 
     18     sum = sum_number(n);
     19 
     20     printf("The 1 + 2 + ...+ %d is :  %lld
    ", n, sum);
     21 
     22     return 0;
     23 }
     24 
     25 long long sum_number(int n)
     26 {
     27     if(0 == n) {
     28         return 0;
     29     }
     30     else {
     31         return  n + sum_number(n - 1);
     32     }
     33 }
    ~                                  

      2.使用递归的方式计算闰年

    #include <stdio.h>
      2 
      3 int leap_year(int);
      4 
      5 int main(int argc, char *argv[])
      6 {
      7     int year;
      8 
      9     printf("Enter year : ");
     10     scanf("%d", &year);
     11 
     12     if(leap_year(year)) {
     13         printf("The %d is leap year .
    ", year);
     14     }
     15     else {
     16         printf("The %d is not leap year. 
    ", year);
     17     }
     18 
     19     return 0;
     20 }
     21 
     22 int leap_year(int year)
     23 {
     24     if((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) {
     25         return 1;
     26     }
     27     else {
     28         return 0;
     29     }
     30 }
    ~                                 

      3.对一个小数进行四舍五入

      1 #include <stdio.h>
      2 #include <math.h>
      3 
      4 int sishe_wuru(double);
      5 
      6 int main(int argc, char *argv[])
      7 {
      8     double num;
      9     int i = 0;
     10 
     11     printf("Enter a doule number : ");
     12     scanf("%lf", &num);
     13 
     14     i = sishe_wuru(num);
     15 
     16     printf("The number %.4lf sishe_wuru is %d.
    ", num, i);
     17 
     18     return 0;
     19 }
     20 
     21 int sishe_wuru(double num)
     22 {
     23     int i = 0,itemp = 0;
     24     itemp = (int)num;
     25     if(num > 0) {
     26         i = (num - itemp) >= 0.5 ? ceil(num - itemp) : floor(num - itemp);
     27         return i + itemp;
     28     }
     29     else {
     30         i = (num - itemp) > -0.5 ? ceil(num - itemp) : floor(num - itemp);
     31         return i + itemp;
     32     }
     33 }
     34 
    ~   

      4.计算fibonacci数列,例 : fib(0) = 1, fib(1) = 1, fib(n) = fib(n - 1) + fib(n - 2); 

     1 #include <stdio.h>
      2 
      3 long fib(int);
      4 
      5 int main(int argc, char *argv[])
      6 {
      7     int n;
      8     long num = 0;
      9 
     10     printf("Enter you want know's fibonacci's the first few : ");
     11     scanf("%d", &n);
     12 
     13     if(n < 0) {
     14         printf("Your enter is ERROR !!!.
    ");
     15         return 0;
     16     }
     17 
     18     num = fib(n);
     19 
     20     printf("The fib %d is : %ld.
    ", n, num);
     21 
     22     return 0;
     23 }
     24 
     25 long fib(int n)
     26 {
     27     if(0 == n) {
     28         return 1;
     29     }
     30     if(1 == n) {
     31         return 1;
     32     }
     33     if(n > 1) {
     34         return fib(n -1) + fib(n -2);
     35     }
     36 }

      5.计算两个数的最大公约数。

      1 #include <stdio.h>
      2 
      3 int zuida_gongyue(int, int);
      4 
      5 int main(int argc, char *argv[])
      6 {
      7     int num1, num2, itemp;
      8     int yueshu = 0;
      9 
     10     printf("Enter two number : ");
     11     scanf("%d %d", &num1, &num2);
     12 
     13     if(num1 < num2) {
     14         itemp = num1;
     15         num1 = num2;
     16         num2 = itemp;
     17     }
     18     yueshu = zuida_gongyue(num1, num2);
     19 
     20     printf("The number %d and %d zuida_gongyue is %d.
    ", num1, num2, yueshu);
     21 
     22     return 0;
     23 }
     24 
     25 int zuida_gongyue(int num1, int num2)
     26 {
     27     int n = 0;
     28     n = num1 % num2;
     29     num1 = num2;
     30     num2 = n;
     31     if(num2 == 0) {
     32         return num1;
     33     }
     34     else {
     35         return zuida_gongyue(num1, num2);
     36     }
     37 }

       先这几道了,其它的题,过几天会粘上的。如果有错的,欢迎指正。。谢谢!!!!

              

              

          

              加油,宝贝!!!!

  • 相关阅读:
    201671030123叶虹 实验十四 团队项目评审&课程学习总结
    201671030123叶虹《英文文本统计分析》结对项目报告
    201671030123 叶虹 实验三作业互评与改进报告
    《构建之法》——三个问题
    201671030129 周婷 实验十四 团队项目评审&课程学习总结
    201671030129 周婷 《英文文本统计分析》结对项目报告
    201671030129 词频统计项目报告
    201671030129 周婷 实验三:作业互评与改进
    快速通读《现代软件工程——构建之法》
    201673020127 郁文曦 课程学习总结
  • 原文地址:https://www.cnblogs.com/cxw825873709/p/3221971.html
Copyright © 2020-2023  润新知