首页 > 代码库 > hdu 短
hdu 短
短
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; }
hdu 短
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。