ACM之旅——HDU2007

平方和与立方和

 

给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。 

Input

输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。

Output

对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。 
你可以认为32位整数足以保存结果。

Sample Input

1 3
2 5

Sample Output

4 28
20 152

这个题并没有说m和n哪个大哪个小,所以必须自己先把大小位置定好,而且与HDU2006一样,清零位置需要注意...还犯错在t的平方与立方。一开始写的是(以偶数举例...)t=t*t; sum+=t;这样会使t的值跳值,应该直接些sum+=t*t;不应该定义t的值的!

#include <stdio.h>


int main()
{
	int m,n,sum1,sum2,t;
	while(scanf("%d%d",&m,&n)!=EOF)
	{
		sum1=sum2=0;
		if(m>n)
		{
			t=m;
			m=n;
			n=t;
		}
		for(t=m;t<=n;t++)
	  {
		if(t%2==0)
		{
			sum1+=t*t;
		}
		else
		{
			sum2+=t*t*t;
		}
	  }
 		printf("%d %d\n",sum1,sum2);
	}
	return 0;
}

数值统计

统计给定的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

同样需要注意清零顺序,还有就是我天真的以为!=EOF或者!=0的时候输入0就自动退出了,但实际上应该加一个判断条件即if(n==0)break;

查了一些大佬的博客后是因为(scanf(“%d”,&n)!=0)的意思是:scanf(“%d”,&n)成功输入则为1,未输入则为0,所以会出现一直在等待输入的情况..与输入是否为0是不同概念 ,所以我输入0,他判断仍然是1,还是会继续的...学习到了...

#include <stdio.h>


int main()
{
	int count1,count2,count3,n;
	double t;
	while(scanf("%d",&n)!=EOF)
	{
		count1=count2=count3=0;
                if(n==0)
                break;
		while(n--)
		{
			scanf("%lf",&t);
			if(t<0)
			count1++;
			else if(t==0)
			count2++;
			else if(t>0)
			count3++;
		}
		printf("%d %d %d\n",count1,count2,count3);
	}

	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值