zoukankan      html  css  js  c++  java
  • 习题 2-1 位数 2-2 水仙花数 2-3 韩信点兵 2-4倒三角形 2-6 调和级数 2-7近似计算 2-8 子序列的和

    2-1 位数

    #include<stdio.h>
    #include<math.h>
    int main ()
    {
        int n;
        for (n=100; n<=999; n++)
        {
            if(n == pow(n/100,3) + pow(n/10%10,3) + pow(n%10,3) )
                 printf("%d
    ",n);       
        }
        
        system("PAUSE");
        return EXIT_SUCCESS;
    }

    2-2 水仙花数

    #include<stdio.h>
    #include<math.h>
    #include <cstdlib>
    
    int main ()
    {
        int n;
        for (n=100; n<=999; n++)
        {
            if(n == pow(n/100,3) + pow(n/10%10,3) + pow(n%10,3) )
                 printf("%d
    ",n); 
                  
        }
        
        system("PAUSE");
        return EXIT_SUCCESS;
    }

    2-3 韩信点兵

    #include <stdlib.h>
    #include <stdio.h>
    
    int main(int argc, char *argv[])
    {
        int n;
        int a, b, c;
        scanf("%d %d %d", &a, &b, &c);
        for (n = 10; n<=100; n++)
        {
            if (n%3 == a && n%5 == b && n%7 == c)
               {
                    printf("%d
    ",n);
                    break;
               }
               
        }
        if (n == 101) printf("No answer
    ");
        
        system("PAUSE");
        return EXIT_SUCCESS;
    }

    2-4 倒三角形

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
      int n;
      int i, j, k;
      scanf("%d", &n);
      for( i = 1; i <= n; i++)
          {
              for ( k=1; k <= i-1; k++)
                  printf(" ");
              for ( j=i; j <= 2*n-i; j++)
              {
                   printf("#");
              }         
              printf("
    ");
          }
      system("PAUSE");	
      return 0;
    }
    总结:printf((j<i || j > m-1-i) ? " " : "#"); 用这句来进行推断输出空格还是#,简单多了


    2-6 调和级数

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
      int n;
      double sum = 0;
      scanf("%d",&n);
      
      int i;
      for(i=1; i<=n; i++)
      {
         sum += 1.0/i;     
      }
      
      printf("%.3lf
    ", sum);
      system("PAUSE");	
      return 0;
    }

    2-7 近似计算

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    int main(int argc, char *argv[])
    {
      int i, j;
      double sum = 0;
      for( i = 1, j = 0; 1.0/i >= 1.0/pow(10,6); i += 2)
      {
         sum += (1.0/i)*pow(-1,j);
         
         j++;
      }
      
      sum += (1.0/i)*pow(-1,j);
      printf("%d
    ", i);
      printf("%.6lf
    ", 4*sum);
      system("PAUSE");	
      return 0;
    }
    总结: 能够用sign = -sign。来进行正负号的转换
    2-8 子序列的和

    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    int main(int argc, char *argv[])
    {
      int n, m;
      scanf("%d %d", &n, &m);
      double sum = 0.0;
      int i;
      
      for( i = n; i <= m; i++)
      {
         sum += 1.0/i/i;
      }
      
      printf("%.5lf
    ", sum);
      system("PAUSE");	
      return 0;
    }

    总结:仍然是怕溢出,1.0/i/i

  • 相关阅读:
    抽象类的子类能够new
    Codeforces Round #250 (Div. 2) A
    软件架构设计箴言理解
    UVA1422-Processor(二分法+优先队列)
    猜你喜欢-----推荐系统原理介绍
    Android------Intent.createChooser
    mongodb3.0 性能測试报告 二
    *Android 多线程下载 仿下载助手(改进版)
    Gson解析数组和list容器
    oracle dbms_repcat_admin能带来什么安全隐患
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5409498.html
Copyright © 2011-2022 走看看