杭電2031進数変換【水】

2344 ワード

しんしんへんかん
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 34277    Accepted Submission(s): 18883
Problem Description
10進数Nを入力し、R進数出力に変換します.
 
Input
入力データは複数の試験例を含み、各試験例は2つの整数N(32ビット整数)とR(2<=R<=16,R<>10)を含む.
 
Output
変換された数をテストインスタンスごとに出力し、出力ごとに1行を占めます.Rが10より大きい場合、対応する数値規則は16進数(例えば、10はAで表されるなど)を参照する.
 
Sample Input
 
   
7 2 23 12 -4 3
 

Sample Output
 
   
111 1B

-11

为何贴这么水的题 ,主要强调itoa函数 ,提供两种不同解决方法;

#include
#include
#include 
int main()
{
	char arr[2000];
	int n,r;
	while(~scanf("%d%d",&n,&r))
	{
		if(n<0)
		{ 
			n=-n;
			itoa(n,arr,r);
			printf("-");
	    }
		else
		{
			itoa(n,arr,r);
		}
			int len=strlen(arr);
			for(int i=0;i='a'&&arr[i]<='z')
				{
					arr[i]-=32;
				}
				printf("%c",arr[i]);
			}
			printf("
"); } return 0; } /*#include int main() { int n,r,i,j,f,p; char a[200]; while(~scanf("%d%d",&n,&r)) { i=0; p=0; if(n<0) { p=-1; n=-n; } while(n>0) { f=n%r; if(f>=10) a[i]=f-10+'A'; else a[i]=f+'0'; i++; n/=r; } if(p==-1) printf("-"); for(j=i-1;j>=0;j--) printf("%c",a[j]); printf("
"); } return 0; }*/