Problem Description
输入一个八进制的字符串,将它转换成等价的十进制字符串,用pringf的%s格式输出。
Input
首先输入一个正整数t,表示有t组测试数据(1<= t <= 10010)。
接下来t行,每行一个字符串,表示一个八进制整数(这个整数不超过20位)。
Output
对于每个测试数据,输出相应的十进制字符串。每个字符串一行。
Sample Input
1 1732
Sample Output
986
HINT
注意:给的八进制数可能很大,用long long
#include<stdio.h> #include <string.h> #include <stdlib.h> long long mishu(int j) { long long res = 1; for(;j>0;j--) { res *= 8; } return res; } int main() { int i,j,k,m; long long n; while(scanf("%d",&m)!=EOF) { for(k=0;k<m;k++) { n=0; char s[40]; scanf("%s",s); for(i=strlen(s)-1,j=0;i>=0;i--,j++) { n += (s[i]-‘0‘)*mishu(j); } printf("%lld\n",n); } } return 1; }
时间: 2024-10-10 01:49:49