栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

杭电2007(c语言)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

杭电2007(c语言)

今天孩子被2007wa的一头雾水,差点原地去世。然后多次揣摩,果然,我忽略了一个重大的问题。。。

wa的代码如下:

 

#include
#include
int main()
{
	long long  a,b,c,e;
	while(scanf("%lld %lld",&a,&b)!=EOF){
		long long d=0,f=0;
		for(c=a;c<=b;c++){
			if(c==0)continue;
			if(c==1||c==-1){
				e=pow(c,3);
				f+=e;
				continue;
			}
			if(c%2==0){
				e=pow(c,2);
				d+=e;
				continue;
			}
			if(c%2!=0){
				e=pow(c,3);
				f+=e;
			}
		}
		printf("%lld %lldn",d,f);
	}
	return 0;
}

就这么看,还真的不太容易找出错哪儿了(反正我是这样的)(手动头秃)。然后,屡次揣摩题意,发现题目上可没有说,输入的两个数一定是按照从小到大的顺序排列哦。这就是差点把我wa到哭的小细节(泪目)。

但是没办法,只能擦干眼泪继续肝。修改后的代码如下:

#include
#include
int main()
{
	long long  a,b,c,e;
	while(scanf("%lld %lld",&a,&b)!=EOF){
		if(a>b){
			int x=a;
			a=b;
			b=x;
		}
		long long d=0,f=0;
		for(c=a;c<=b;c++){
			if(c==0)continue;
			if(c==1||c==-1){
				e=pow(c,3);
				f+=e;
				continue;
			}
			if(c%2==0){
				e=pow(c,2);
				d+=e;
				continue;
			}
			if(c%2!=0){
				e=pow(c,3);
				f+=e;
			}
		}
		printf("%lld %lldn",d,f);
	}
	return 0;
}

真是没想到,一个判断语句,差点把孩子人整傻了(泪目)。

(如有问题,欢迎指正。)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/302488.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号