PAT B1016 字符串转数值

2019-07-14  本文已影响0人  ranerr_
  1. 直观的方法是先组织好字符串再转化为数字相加,但是会损失时间.另外,string对于\0的处理是并不会影响stoll()的使用,但是\0并不作为结束字符使用,所以如果打印出来是无法得出和c风格字符串同样的效果的
  2. 字符串转数值直接用pa=pa*10+da即可,这种方法对于stringC-style string通用
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
int main() {
  long long int sum;
  int len_pa = 0, len_pb = 0, da, db;
  char a[12], b[12];
  scanf("%s%d%s%d", &a, &da, &b, &db);
  for (int i = 0; i < strlen(a); i++) {
    if (a[i] - '0' == da)
      a[len_pa++] = a[i];
  }
  a[len_pa] = '\0';
  for (int i = 0; i < strlen(b); i++) {
    if (b[i] - '0' == db)
      b[len_pb++] = b[i];
  }
  b[len_pb] = '\0';
  sum = atoll(a) + atoll(b);
  printf("%lld", sum);
  return 0;
}

#include <cstdio>
#include <cstring>
using namespace std;
int main() {
  long long int pa = 0, pb = 0, sum;
  int da, db;
  char a[12], b[12];
  scanf("%s%d%s%d", &a, &da, &b, &db);
  for (int i = 0; i < strlen(a); i++) {
    if (a[i] - '0' == da)
      pa = pa * 10 + da;
  }
  for (int i = 0; i < strlen(b); i++) {
    if (b[i] - '0' == db)
      pb = pb * 10 + db;
  }
  sum = pa + pb;
  printf("%lld", sum);
  return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读