• 假期编程


     此博客链接:https://www.cnblogs.com/ping2yingshi/p/12246707.html

    1.平方和与立方和(21min)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2007

    Problem Description
    给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
    Input
    输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。
    Output
    对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。
    你可以认为32位整数足以保存结果。
    Sample Input
    1 3
    2 5
    Sample Output
    4 28
    20 152
    题解:此题巨坑,题目一看没什么难度,就一个奇数和偶数判断,但是你会发现给的示例你都对,还感觉自己没有错,但是就是ac不了,然后你一直纳闷,直到你看了我写的你才知道原因,就是给定的一段连续的整数可能是从大到小给的。所以你要先判断给的范围是从大到小给的饿,还是从小到大给的。
    代码如下:
    #include<stdio.h>
    #include<math.h>
    int main(void)
    {
        int m;
        int n;
        int i;  
        while(~scanf("%d %d",&m,&n))
        { 
            int x=0;
            int y=0;
            int temp;
            if(m>n)
            {
                temp=m;
                m=n;
                n=temp;
            }
            for(i=m;i<=n;i++)
                if(i%2==0)
                    x=x+i*i;
                else
                    y=y+i*i*i; 
          
            printf("%d %d
    ",x,y);
        
         }
      
        return 0;
        
    }

     2.数值统计(23min)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2008

    Problem Description
    统计给定的n个数中,负数、零和正数的个数。
    Input
    输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。
    Output
    对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。
    Sample Input
    6 0 1 2 3 -1 0
    5 1 2 3 4 0.5 0 
    Sample Output
    1 2 3
    0 0 5
    题解:此题需要注意的是题目给的数值是实数范围而不是整数范围,把输入的数定义为double类型就可以了,我一开始定义为int类型,后来报错,也是琢磨好久才知道错那里了。
    代码如下:
    #include<stdio.h>
    #include<math.h>
    int main(void)
    {
       
        int n; 
        
        int i;
        while(1)
        { 
           double m[100]={0.0};
           
           scanf("%d",&n);
           if(n==0)
              break;
           else{
              for(i=0;i<n;i++)
                 scanf("%lf",&m[i]);
              int zero=0;
              int R=0;
              int F=0;
              for(i=0;i<n;i++)
                if(m[i]<0)
                    F++;
                else if(m[i]>0) 
                    R++;
                else
                    zero++;
                   
              printf("%d %d %d
    ",F,zero,R);
             }   
         }
         return 0;
        
    }
  • 相关阅读:
    用户使用调查报告
    Beta阶段敏捷冲刺五
    Beta阶段敏捷冲刺四
    Beta阶段敏捷冲刺三
    Beta阶段敏捷冲刺二
    Beta阶段敏捷冲刺一
    软工网络15团队作业8——Beta阶段敏捷冲刺
    Beta阶段Scrum 冲刺博客合集
    软工网络15Alpha阶段敏捷冲刺博客集合
    项目复审——Beta阶段
  • 原文地址:https://www.cnblogs.com/ping2yingshi/p/12246707.html
Copyright © 2020-2023  润新知