文章

64

粉丝

100

获赞

4

访问

39.7k

头像
进制转换2 题解:
P1259 北京大学机试题
发布于2024年3月15日 15:09
阅读数 990

1259解题思路

#include <bits/stdc++.h>
using namespace std;
int main()
{
	char a[105];
	
	while(cin>>a)
	{
		int l=strlen(a);
		int sum=0;
		for(int i=2;i<l;i++)
		{
			 if(a[i]>='0'&&a[i]<='9')
			sum=sum*16+a[i]-'0';
			else
			sum=sum*16+a[i]-'A'+10;
		}
		printf("%d\n",sum);
	}
	return 0;
 } 

 

登录查看完整内容


登录后发布评论

3 条评论
FCC
2024年3月15日 17:41

#include <bits/stdc++.h>
using namespace std;

int main(){
	int sum = 0;   //十进制
	string str;
	
	while( cin >> str ){

	    for( int i=2; i < str.size(); i++ ){

	        if( str[i] >= '0' && str[i] <= '9' )
			    sum = sum * 16 + str[i] - '0';
		    else
			    sum = sum * 16 + str[i] - 'A' + 10;
	    }
	    cout << sum << endl;
	}
	
    return 0;
}

您好,请问我这哪里有问题呀,运行结果只有一半数据通过。crying

赞(1)

小酒 : 回复 FCC: 将int sum=0;放在while循环里就解决了。每一次循环sum都得归零。

2024年3月15日 21:50

FCC : 回复 小酒: 谢谢你呀,解决啦~

2024年3月16日 10:38