HDU2031 进制转换【进制】
生活随笔
收集整理的這篇文章主要介紹了
HDU2031 进制转换【进制】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題鏈接:HDU2031 進制轉換。這是一個入門訓練題,自然用C語言編寫程序。
問題簡述:參見上述鏈接。
問題分析:(略)。
程序說明:需要注意的一點是,將一個10進制數轉換為2進制的話,字符串可能很長,字符數組需要大一點的空間,80=20*4字符是夠的,因為整數最長只有10進制19位。
本題還需要注意負數的處理!
參考鏈接:人們常用的是10進制,有關10進制轉換,可以參見:I00028 整數逆序。
/* HDU2031 進制轉換 */#include <stdio.h> #include <string.h>void reverse(char s[]) {int i,j;int c;for(i=(s[0]=='-'?1:0),j=strlen(s)-1; i<j;i++,j--){c = s[i];s[i] = s[j];s[j] = c;} }void convert(int n, int r, char *s) {char *t;t = s;// 處理負數if(n<0) {*t++ = '-';n = -n;}while(n) {*t = n % r;if(*t >= 10)*t = *t - 10 + 'A';else*t = *t + '0';n /= r;t++;}*t = '\0';reverse(s); }int main(void) {int n, r;char t[80];while(scanf("%d%d", &n, &r) != EOF) {convert(n, r, t);printf("%s\n", t);}return 0; }
轉載于:https://www.cnblogs.com/tigerisland/p/7564708.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的HDU2031 进制转换【进制】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.3、Android Studio使用
- 下一篇: Ubuntu 15.1 unity在顶部