牛客网NC112--进制转换
生活随笔
收集整理的這篇文章主要介紹了
牛客网NC112--进制转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
描述
給定一個十進制數 M ,以及需要轉換的進制數 N 。將十進制數 M 轉化為 N 進制數。
當 N 大于 10 以后, 應在結果中使用大寫字母表示大于 10 的一位,如 'A' 表示此位為 10 , 'B' 表示此位為 11 。
若 M 為負數,應在結果中保留負號。
示例1
輸入:
7,2 返回值:"111"備注:
M是32位整數,2<=N<=16.完整的java代碼1:
public class Demojinzhi {public static void main(String[] args) {String txtString=solve(7, 2);System.out.println(txtString);}public static String solve(int M,int N){String st="0123456789ABCDEF";StringBuilder sb=new StringBuilder();boolean flag=false;if(M<0){M=-M;flag=true;}while(M!=0){int b=M%N;sb.append(st.charAt(b));M=M/N;}String s1=sb.reverse().toString();if(flag){s1="-"+s1;}return s1;}}java函數代碼2:
public String reverse(String s){char[] s1=s.toCharArray();char[] s2=new char[s1.length];int i=0,j=s1.length-1;while(i<s1.length&&j>=0){s2[i]=s1[j];i++;j--;} ??String s3=new String(s2);return s3;}public String solve (int M, int N) {//char[] s={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};String s3="0123456789ABCDEF";//char[] s=s3.toCharArray();String s1="";int flag=0;if(M<0){M=-M;flag=1;}while(M!=0){int b=M%N;//s1=s1+s[b];s1=s1+s3.charAt(b);M=M/N;}s1=reverse(s1);if(flag!=0){s1="-"+s1;}return s1;}c語言代碼:
char* solve(int M, int N ) {// write code herechar* c="0123456789ABCDEF";int i=0;char ans[32];int flag=0;if(M<0){M=-M;flag=1;}if(flag){ans[i]='-';i++;}while(M){int b=M%N;ans[i++]=c[b];M=M/N;}ans[i]='\0';int ta=0,te=strlen(ans)-1;if(flag) ta++;while(te>ta){int temp=ans[te];ans[te]=ans[ta];ans[ta]=temp;ta++;te--;}char* s=ans;return s; }總結
以上是生活随笔為你收集整理的牛客网NC112--进制转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tf.placeholder函数的用法
- 下一篇: NC78-反转列表