杭电 2057 A + B Again

http://acm.hdu.edu.cn/showproblem.php?pid=2057

开始想偷懒只用16进制输入输出来解决,怎么也没有写出来,后来就把问题划归为进制转换问题,一步一步写了出来。

#include<stdio.h>
#include<string.h>
__int64 fang(int i){
	__int64 y = 1;
	int j;
	for(j = 1;j <= i;j++)
		y *= 16;
	return y; 
}

__int64 change(char s[]){
	__int64 x = 0;
	int i,len,j = 0;
	len = strlen(s);	
	for(i = len-1;i >= 0;i--)
	{
		if(s[i] >= '0' && s[i] <= '9')
		{
			x += (__int64)(s[i]-'0')*fang(j);
			j++;
		}
		else if(s[i] >= 'A' && s[i] <= 'F'){
			x += (__int64)(s[i]-'A'+10)*fang(j);
			j++;
		}
		else if(s[i] == '+'){
			x = x;
		}
		else x = -x;
	}
	return x;
}

void add(__int64 x,__int64 y){
	int i = 0,j;
	__int64 sum,t;	
	char s[16];
	t = sum = x + y;
	if(t == 0) {
		printf("0");		
	}
	else{
		if(t < 0) sum = -sum;	
		while(sum){
			s[i] = sum%16+'0';
			if(s[i] > '9') s[i] = sum%16+55;
			sum /= 16;
			i++;
		}
		if(t < 0) printf("-");
		for(j = i-1;j >= 0;j--)
			printf("%c",s[j]);
	}	
	printf("\n");	
}

int main()
{
	char s[16],t[16];
	int i;
	__int64 x,y;
	while(scanf("%s%s",s,t) != EOF)
	{
		x = change(s);
		y = change(t);
		add(x,y);
	}
	return 0;
}
感觉自己的解法太弱了,其它简单解法:http://zhidao.baidu.com/link?url=1zAkif-h33Ex286kl-E0YRj-7kZDF2pqZuvlP9f9L7zdCitqOPZ3d8OV8KkLOhMKpFUHeZptT_kVdizyEvPj5q

c++版:http://blog.sina.com.cn/s/blog_69fc13c50100lfoq.htmlhttp://blog.csdn.net/xujinsmile/article/details/7836413怎么感觉用c++都比c简单,下个学期得把c++和c对比好好学一遍。




要解决"Flash Timeout. Reset the Target and try it again"的问题,可以按照以下步骤进行操作。 首先,打开烧录器的选项设置。在选项设置中,找到调试(Debug)相关的设置。 接下来,找到Reset选项,并将其修改为SYSRESETREQ。这将改变重置行为,以帮助解决烧录器下载报错的问题。 经过以上操作,可以成功取消芯片的读写保护,并解决"Flash Timeout. Reset the Target and try it again"的报错信息。这样就可以顺利地进行烧录器的烧写代码了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [[Keil 烧录器下载报错] “Flash Timeout. Reset the Target and try it again”](https://blog.csdn.net/qq_43693061/article/details/121586012)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Keil出现Flash Timeout.Reset the Target and try it again.](https://blog.csdn.net/weixin_43177401/article/details/127687994)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [微软内部资料-SQL性能优化3](https://download.csdn.net/download/songsu/1850566)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值