zoukankan      html  css  js  c++  java
  • 《算法竞赛入门经典》第二章 2.4

    任务1:

      

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

    任务2:

     1 #include<stdio.h>
     2 int main()
     3 {
     4     double i;
     5     for(i = 1; i !=10 ;i += 0.1)
     6     {
     7         printf("%0.1f", i);
     8     }
     9     return 0;
    10 }

    因为我知道浮点数的存储……所知知道会一直运行。。

    2.4.4 C++中的输入输出

    1 #include<cstdio>
    2 int main()
    3 {
    4     int a, b;
    5     while(scanf("%d%d", &a, &b) == 2)
    6         printf("%d
    ", a+b);
    7     return 0;
    8 }

    上面的用法第一次见到还是考研复试的时候,看了王道的考研机试。。

    1 #include<iostream>
    2 using namespace std;
    3 int main()
    4 {
    5     int a, b;
    6     while(cin>> a >> b) cout<< a+b << "
    ";
    7     return 0;
    8 }

    上面的程序在codeblocks没有问题,而在其命令行下则有错误……

    错误:/tmp/cc3xkv3G.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
    解决办法:将.cpp文件改为.c文件编译
                         或者这样编译gcc <source> -lstdc++
                         或者改用g++编译

    之所以前面的例子多没有错误,是因为我保存文件到test.cpp用gcc编译都当成c来处理了,这次写成c++还是用g++编译吧。

    2.4.6 上机练习

    习题2-1 位数(digit)

      

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int n, count = 0;
     5     scanf("%d", &n);
     6     while(n!= 0)
     7     {
     8         n/=10;
     9         count++;
    10     }
    11         printf("%d
    ", count);
    12     return 0;
    13 }

    习题2-2 水仙花数(daffodil)

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int i, j, k, count = 0, tmp1, tmp2;
     5     for(i = 1; i<=9; i++)
     6         for(j = 0;j <=9;j++)
     7             for(k = 0;k <=9; k++)
     8             {
     9                 tmp1 = (100*i+10*j+k);
    10                 tmp2 = (i*i*i+j*j*j+k*k*k);
    11                 if(tmp1 == tmp2)
    12                      printf("%d
    ",tmp1);
    13             }
    14 
    15     return 0;
    16 }

    习题2-3 韩信点兵 (hanxin)

    习题2-4 倒三角数 (triangle)

    #include<stdio.h>
    int main()
    {
    int n, i, j, k;
    scanf("%d", &n);
    for(i = n; i >=0 ;i--)
    {
    for(k = 0;k <=i-1; k++)
    printf(" ");
    printf(" ");
    for(j=1; j <=2*i -1;j++)
    printf("#");
    printf(" ");
    }
    return 0;
    }

    习题2-5 统计 (stat)

    习题 2-6调和级数(harmony)

    习题 2-7 近似计算 (approximation)

    #include<stdio.h>
    int main()
    {
    const float eps = 0.0000001;
    int i;
    float S = 0, tmp;
    for(i = 1; ;i++)
    {
    tmp = 1/(2*i-1);
    if(i%2 == 1)
    S+= tmp;
    else
    S-= tmp;
    if(tmp - eps <10*eps)
    break;
    }
    printf("%f ", S);
    return 0;
    }

    习题 2-8 子序列的和(subsequence)

    #include<stdio.h>
    int main()
    {
    int n, m, i;
    double S = 0;
    scanf("%d%d", &n, &m);
    for(i = n; i<=m; i++)
    {
    S+= (double)1/(i*i);
    if(i >= 35)
    break;
    }
    printf("%0.5lf",S);
    return 0;
    }

    习题 2-9 分数化小数(decima)

    习题 2-10 排列 (permutation)

  • 相关阅读:
    2019-2020-2 网络对抗技术 20175318 Exp0 kali Linux系统的安装(雾
    手动编译 TCP BBR v2 Alpha/Preview 内核
    Adobe Flash Player解除限制版
    ABBYY FineReader 15.0.18.1494 Corporate Multilingual破解
    易语言5.9精简学习增强版
    Debian9 快速开启 TCP BBR 实现高效单边加速
    ucosii-2(选做)
    Ubuntu 18.04/18.10快速开启Google BBR的方法
    基于 Nginx 的 v2+websocket+tls 域名伪装
    Google TCP升级版加速:BBR 2.0对比BBR Plus
  • 原文地址:https://www.cnblogs.com/LzKlyhPorter/p/4189842.html
Copyright © 2011-2022 走看看