3: 숫자 반전

3: 숫자 반전
총 시간 제한: 1000 ms 메모리 제한: 65536 kB 설명 은 하나의 정 수 를 지정 합 니 다. 이 수의 각 비트 에서 숫자 를 반전 시 켜 새로운 수 를 얻 으 십시오.새 수도 정수 의 흔 한 형식 을 만족 시 켜 야 한다. 즉, 주어진 원 수 를 0 으로 하지 않 으 면 반전 후 얻 은 새 수의 최고 비트 숫자 는 0 으로 해 서 는 안 된다 (사례 2 참조).
입력 입력 총 1 줄, 정수 N 을 입력 하 십시오.
-1,000,000,000 ≤ N≤ 1,000,000,000。 출력 출력 은 총 1 줄, 하나의 정수 로 반전 후의 새 수 를 표시 합 니 다.샘플 입력 샘플 \ # 1: 123
샘플 \ # 2: - 380 샘플 출력 샘플 \ # 1: 321
샘플 \ # 2: - 83
#include
#include
#include 
#include
using namespace std;
//http://cxsjsxmooc.openjudge.cn/2017t1summerw4/3/
//       ,strrev   oj   ,    reverse
//     1000    ,  0     
string a;
int len,flag,len2;
int main(){
    while(cin>>a){
        flag=1;
        len=a.size();
        if(!isdigit(a[0])){
            flag=0;
            len--;
        }
        if(len==1)cout<else {
reverse(a.begin(),a.end());
if(a[0]=='0'){
if(!flag)
cout<<"-";
int k=0;
while(a[k]=='0')k++;
for(int i=k;icout<cout<else{
if(!flag)
cout<<"-";
for(int i=0;icout<cout<

9, 14 번 을 또 썼어 요.
#include
#include
using namespace std;
//http://noi.openjudge.cn/ch0105/29/
char a[30];
int k,len;
int main(){
    cin>>a;
    len=strlen(a);
    if(a[0]=='0'){
        cout<<"0"<return 0;
    }
    if(a[0]=='-'){
        cout<<"-";
    }
    k=len-1;
    while(a[k]=='0'){
        k--;
    }
    for(int i=k;i>=0;i--){
        if(a[i]!='-'){
            cout<cout<

char 로 그룹 을 만 들 려 고 했 는데 이렇게 복잡 해 졌 습 니 다. 사람들 이 직접 정수 로 하 는 방법 을 보 세 요. 간단 하면 안 됩 니 다.사고방식: 음수 인지 아 닌 지 를 판단 하고 음수 라면 '-' 번 호 를 출력 하고 다시 양수 로 바 꾸 어 계산한다.
계산 과정: 반전 이 필요 한 수의 뒤에서 앞으로 가 는 모든 사람 을 하나의 숫자 s 로 계산 하고 매번 10 으로 나 누 어 나머지 를 구하 면 된다.
#include  
int main()  
{  
  int x,s=0;  
  scanf("%d",&x);     
  if(x<0)//        
  {  
    printf("-");// ,        
    x=x*(-1);//      
  }  
  while(x>0)//          0    
  {  
    s=s*10+x%10;//       
    x=x/10;//     10  
  }  
  printf("%d",s);//          
  return 0;  
}

좋은 웹페이지 즐겨찾기