首页 > 代码库 > (HDU)1266 -- Reverse Number(反向数)
(HDU)1266 -- Reverse Number(反向数)
题目链接:http://bak.vjudge.net/problem/HDU-1266
这题要注意前导0和后导0了,用字符串处理找出需要倒序的位置,这题读入字符串忘了getchar(),调试了半天。
另外要注意的是字符串数组下标是从0开始的,最后有一个回车符。而strlen计算字符串长度遇到回车符停止,长度不包括回车符。
举例 :我往s字符串读入hello。
s[0]=h s[1]=e s[2]=l s[3=l] s[4]=o s[5]=\0 strlen(s)返回的是5 。
1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <iostream> 5 #include <algorithm> 6 #include <string> 7 #include <cstdlib> 8 9 using namespace std; 10 11 int main() 12 { 13 int t,len,i; 14 char s[1000]; 15 scanf("%d",&t); 16 while(t--) 17 { 18 getchar(); 19 int flag=0,last,first; 20 scanf("%s",s); 21 len=strlen(s); 22 char test=s[len-1]; 23 last=len-1; 24 while(test==‘0‘) 25 { 26 last--; 27 test=s[last]; 28 } 29 if(s[0]==‘-‘) flag=(1); 30 first=0; 31 for(i=0;i<len-1;i++) 32 if(s[i]!=‘0‘&&s[i]!=‘-‘) 33 { 34 first=i; 35 break; 36 } 37 if(flag) printf("-"); 38 for(i=last;i>=first;i--) 39 printf("%c",s[i]); 40 for(i=last+1;i<=len-1;i++) 41 printf("0"); 42 printf("\n"); 43 } 44 return 0; 45 }
(HDU)1266 -- Reverse Number(反向数)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。