运行超时?

问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
时间限制:1.0s 内存限制:512.0MB

以下是我的源代码:

#include<iostream>
#include<vector>
using namespace std;

int main(){
	char m;
	short i=0,n;
	long n16=1,sum=0;
	vector<char>rest;
	vector<char>::iterator res;
	while(1){
		m=getchar();
		if(m=='\n')
			break;
		rest.push_back(m);
	}
	for(res=rest.end()-1;res!=rest.begin()-1;res--,i++){
		m=*res;
		switch(m){
			case 'A':n=10;break;
			case 'B':n=11;break;
			case 'C':n=12;break;
			case 'D':n=13;break;
			case 'E':n=14;break;
			case 'F':n=15;break;
			default:n=m-'0';
		}
		if(i>0)
			n16*=16;
		sum+=n*n16;
	}
	cout<<sum;
	return 0;
} 

这是测评结果:
在这里插入图片描述
这个程序为什么会超时?求大佬解答~~

发布了1 篇原创文章 · 获赞 0 · 访问量 5
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览