根据是否是奇数偶数判断为什么通过不了?特殊情况也考虑了

#include <cstdio>
using namespace std;

int f(long long x) {
	int tmp = 0;
	while (x != 0) {
		tmp += x % 10;
		x /= 10;
	}
	return tmp;
}

int main() {
	long long c, a, b, isAllNine[12] = {9,99,999,9999,99999,999999,9999999,99999999,999999999,9999999999,99999999999,999999999999};
	while (scanf("%lld", &c) != EOF) {
		bool flag = true;
		if (c % 2 == 0) {
			for (int i = 0; i < 12; i++) {
				if (c / 2 == isAllNine[i]) {
					a = b = (c / 2);
					flag = false;
					break;
				}
			}
			if (flag) {
				a = c / 2 + 1;
				b = a - 2;
			}
		}
		else {
			a = c / 2;
			b = a + 1;
		}
		printf("%d\n", f(a) + f(b));
	}
	return 0;
}

全部评论

相关推荐

11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务