hdu 短
时间:2014-12-30 19:04:17
收藏:0
阅读:302
短
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 172 Accepted Submission(s) : 7
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
输出[L, R]中能被9整除的数的个数
Input
多组测试数据
每组测试数据包含两个数L和R
所有数据都在int范围内。
每组测试数据包含两个数L和R
所有数据都在int范围内。
Output
每组数据输出一个整数,表示区间[L, R]中能被9整除的数的个数
Sample Input
1 9 1 10
Sample Output
1 1
/*题解:
有点略坑的题,考虑完所有的情况再Wrong了一次的情况下A了。
注意点:
输入数据为int范围内的整数,所以可以是负数,例如-18、-19
输入数据不一定L<=R,所以先判断大小并交换位置。(L<=R则不用交换)
0也可以被9整除
【0,0】,【9,9】,【-9,-9】能被整除个数均为1
提供几组数据:
【0,19】 3
【9,18】 2
【-18,-9】 2
【-20,9】 4
【-18,-7】 2
*/
#include<cstdio>
#include<cmath>
#include<stdlib.h>
int main(){
int l,r,t;
while(scanf("%d %d",&l,&r)!=EOF)
{
if(l>r)//不交换会Output Limit Exceeded
{
t=l;
l=r;
r=t;
}
if(l==r)//情况一、l==r
{
if(l%9==0)
{
printf("1\n");
}
else printf("0\n");
}
else
{
if(l>0)//l>0,r>0
{
printf("%d\n",r/9-(l-1)/9);
}
else if(l==0)//l==0,r>0
{
printf("%d\n",r/9+1);
}
else if(l<0)
{
if(r==0)//l<0,r==0
{
printf("%d\n",abs(l/9)+1);
}
else if(r<0)//l<0,r<0
{
printf("%d\n",abs(l/9)-(abs(r)-1)/9);
}
else if(r>0)//l<0,r>0
{
printf("%d\n",r/9+abs(l/9)+1);
}
}
}
}
return 0;
}
原文:http://blog.csdn.net/u013806814/article/details/42269481
评论(0)