2260-与班尼特·胡迪一起成长

这题有两个坑:
第一:字符串部分的数字可能多于20位,不可使用整型甚至是long long 以及 atoi() 等字符转换函数;
只可以对字符串进行模拟加法;

第二:要留意前导零不可省略;只看字符是数字部分!!!!
剩下的看代码内的注释。

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
char s[N];
int main() {
	int T;
	scanf("%d", &T);
	getchar();
	while (T--) {
		gets(s);
		int len = strlen(s);
		int last = -1, first = 0;
		//last 指的是最后那部分数字串的最后一位的位置;同理first是指在那部分数字串的第一位的位置。

		//下面从字符串尾部开始遍历找出那个last的位置。
		for (int i = len - 1; i >= 0; --i) {
			if (isdigit(s[i])) {
				last = i;
				break;
			}
		}

		//情况一:该字符串全是非数字的,则直接输出一条完整的字符串。
		if (last == -1) {
			printf("%s\n", s);
			continue;
		}

		//情况二:有数字部分,遍历找出first,last;
		for (int i = last - 1; i >= 0; --i) {
			if (!isdigit(s[i])) {
				first = i + 1;
				break;
			}
		}

		int cnt = last - first + 1;//cnt指的是那部分数字的总长度。
		int add = 0;               //下文部分的 add 指的是加法中是否向下一位进一  例如 9+2  →add=1;
		for (int i = last; i >= first; --i) {
			int tmp;
			if (i == last) tmp = s[i] - '0' + 1 + add;//例如  s[i]='9',  则 s[i]-'0'='9'-'0'=9;按题意最后一位数字加1;
			else tmp = s[i] - '0' + add;
			add = tmp / 10;
			tmp = tmp % 10;
			s[i] = tmp + '0';//将 最后tmp的结果转为字符存进 s[i];
		}

		//先输出数字部分前面的全部字符串;
		for (int i = 0; i < first; ++i) {
			printf("%c", s[i]);
		}

		if (add) printf("1");
		for (int i = first; i < len; ++i) {
			printf("%c", s[i]);
		}
		puts("");
	}
	return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
平民海草行久在原神深渊12-3下半中可以使用以下阵容进行打法: 主阵容: 1.主DPS:可以选择使用雷元素或火元素的角色,如芭芭拉、卢克或凯亚等,注意要加强元素抗性和攻击力。 2.辅助DPS:可以选择使用风元素或冰元素的角色,如旅行者、琴或甘雨等,主要用于控制沙虫的移动和攻击,增加队伍输出。 3.支援角色:可以选择使用能提供元素增益和治疗的角色,如钟离、行秋或班尼等,主要用于增加队伍的生存能力和输出。 4.反应角色:可以选择使用能产生元素反应的角色,如菲谢尔、雷泽或烟绯等,主要用于增加队伍的输出和控制。 备选阵容: 1.主DPS:可以选择使用其他元素的角色,如岩元素或水元素,视情况而定。 2.辅助DPS:可以选择使用其他元素的角色,如雷元素或火元素,视情况而定。 3.支援角色:可以选择使用其他能提供元素增益和治疗的角色,如丽莎、珂亚或诺艾尔等,视情况而定。 4.反应角色:可以选择使用其他能产生元素反应的角色,如安柏、凝光或香菱等,视情况而定。 在打沙虫的时候,需要注意以下几点: 1.沙虫有两个弱点,分别位于头部和尾部,攻击这两个部位可以增加输出和控制。 2.沙虫会在地下移动,需要用辅助DPS的技能进行控制。 3.沙虫会喷射毒液,需要躲避或使用支援角色的治疗技能进行治疗。 4.沙虫会释放元素爆发,需要注意躲避和加强生存能力。 总的来说,需要根据自己的阵容和实际情况进行组合和打法,调整好每个角色的技能和装备,才能更好地应对深渊12-3下半的挑战。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值