2 条题解
-
0
看不懂题面,直接观察样例。发现就是输入 ,输出 。( 为十进制数)。
#include<bits/stdc++.h> #define int long long #define INF 0x3f3f3f using namespace std; int n,k; signed main(){ while(cin>>n>>k){ if(k==16)cout<<"0X"; int a[101],cnt=0; while(n){ a[++cnt]=n%k; n/=k; } for(int i=cnt;i>=1;i--){ if(a[i]<10)cout<<a[i]; else cout<<char(a[i]-10+'A'); } cout<<"\n"; } return 0; }
-
0
C :
#include "stdio.h" int main() { unsigned int n,b; int i,j; char a[1024]; while(scanf("%d%d",&n,&b)!=EOF) { i=0; while(n) { if(b>=10) { if(n%b==10) a[i]='A'; else if(n%b==11) a[i]='B'; else if(n%b==12) a[i]='C'; else if(n%b==13) a[i]='D'; else if(n%b==14) a[i]='E'; else if(n%b==15) a[i]='F'; else a[i]=n%b+'0'; } else a[i]=n%b+'0'; n/=b; i++; } if(b==16) printf("0X"); for(j=i-1;j>=0;j--) printf("%c",a[j]); printf("\n"); } return 0; }
C++ :
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> char *str ="0123456789ABCDEF"; void print(int n,int base){ if(n){ print(n/base,base); printf("%c",str[n%base]); } } int main(){ int n,base; int count; while(scanf("%d %d",&n,&base) == 2){ if(base == 16){ printf("0X"); } if(!n){ printf("0\n"); continue; } print(n,base); printf("\n"); } return 0; }
Java :
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(scanner.hasNext()) { long N = scanner.nextLong(); int B = scanner.nextInt(); if(N>1000000000||N<0) return; if(B>16||B<2) return; if (B == 16) System.out.println("0X" + Long.toString(N, B).toUpperCase()); else System.out.println(Long.toString(N, B).toUpperCase()); } } }
- 1
信息
- ID
- 1991
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者