zoukankan      html  css  js  c++  java
  • HDOJ2007_平方和与立方和

    应该注意到一个细节是题目中没有说明输入的两个数据一定是先小后大的关系,所以需要做一次判断。其他的比较简单。

    HDOJ2007_平方和与立方和

    #include<iostream>
    #include<string>
    #include<stdio.h>
    #include<stdlib.h>
    #include<ctype.h>
    
    using namespace std;
    
    int j_sum[100005]={0};
    int o_sum[100005]={0};
    
    
    int main()
    {
    	int a,b;
    	int i,j;
    	
    	//对所有的奇数,用数组j_sum保存好当前奇数往前所有奇数的立方和 
    	j_sum[1]=1;
    	for(i=3;i<10005;i+=2)
    	{
    		j_sum[i]=j_sum[i-2]+i*i*i;
    	}
    	
    	//对所有的偶数,用数组o_sum保存好当前偶数往前所有偶数的平方和
    	o_sum[0]=0;
    	for(i=2;i<10005;i+=2)
    	{
    		o_sum[i]=o_sum[i-2]+i*i;
    	}
    	
    	while(scanf("%d %d",&a,&b)!=EOF)
    	{
    		//这里要注意题目中没有说明输入的两个数的大小关系,所以需要做一次判断 
    		if(a>b)
    		{
    			int tmp=a;
    			a=b;
    			b=tmp;
    		}
    		int sum1=0,sum2=0;
    		int j1,j2,o1,o2;//保存该区间最左端奇数最右端奇数和最左端偶数最右端偶数
    		if(a%2==0)
    		{
    			o1=a-2;
    			j1=a-1;
    		}
    		else
    		{
    			j1=a-2;
    			o1=a-1;
    		}
    		if(b%2==0)
    		{
    			o2=b;
    			j2=b-1;
    		}
    		else
    		{
    			j2=b;
    			o2=b-1;
    		}
    		printf("%d %d
    ",o_sum[o2]-o_sum[o1],j_sum[j2]-j_sum[j1]);
    	}
    	return 0;
    }
    

    思路

    这里我发现目前还没有遇到TLE的题目,即基本都还是十分基础十分简单的暴力即可求解的题目。所以上面代码中复杂的先求出所有数之和再做减法貌似有点多余。

  • 相关阅读:
    毕设进度28
    任务27
    任务26
    任务25
    任务24
    第二次冲刺
    课堂作业-搜狗输入法
    课堂作业-寻找水王
    博客花园典型用户和场景
    第十天
  • 原文地址:https://www.cnblogs.com/heihuifei/p/10467611.html
Copyright © 2011-2022 走看看