1 条题解
-
0
C :
#include <stdio.h> void main() { void complement(char p[], char ret[]); char p[20], ret[20]; scanf("%s", p); complement(p, ret); printf("%s\n", ret); } void complement(char p[], char ret[]) { int i, add; if (p[0] == '1') { ret[0] = '1'; for (i = 1;i < 16;i++) if (p[i] == '1') ret[i] = '0'; else ret[i] = '1'; i = 15; add = 1; while (add > 0) { add = (ret[i] - '0') + add; ret[i] = '0' + (add & 1); i--; add >>= 1; } ret[16] = '\0'; } else { strcpy(ret, p); } }
C++ :
#include<iostream> #include<cstring> using namespace std; int main() { char s[20]; cin>>s; for(int i=1;i<strlen(s);i++) if(s[i]=='0')s[i]='1'; else s[i]='0'; for(int i=strlen(s)-1;i>=1;i--) if(s[i]=='0'){s[i]='1';break;} else s[i]='0'; cout<<s<<endl; return 0; }
Pascal :
Program TK1322; var s:string; l,i,j:longint; Begin readln(s); if s[1]='0' then begin writeln(s); exit; end; l:=length(s)-1; for i:=1 to l do s[i]:=s[i+1]; s[l+1]:=' '; write('1'); for i:=l downto 1 do if s[i]='1' then begin s[i]:='0'; for j:=i+1 to l do s[i]:='1'; end; for i:=1 to l do if s[i]='0' then s[i]:='1' else if s[i]='1' then s[i]:='0'; writeln(s); End.
Java :
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner cin=new Scanner(System.in); String s=cin.nextLine(); cin.close(); if(s.substring(0,1)=="0") System.out.println(s); else{ int a=Integer.parseInt(s,2); int sum=1; while(sum<a) sum*=2; sum/=2; a-=sum; a=~a; a+=sum; a++; System.out.println("1"+Integer.toBinaryString(a)); } } }
- 1
信息
- ID
- 1397
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者