王道机试 第四章 字符串 4.2 字符串处理

王道机试 第四章 字符串 4.2 字符串处理

例题4.1 特殊乘法(清华大学复试上机题)
  • 解题思路:

本题数据范围大于 1 0 9 10^9 109,可用string类型接收较大的整形数。

int类型只能表示到 1 0 9 10^9 109,而long long 可以表示到 1 0 18 10^{18} 1018

所以一般当两个数据范围都为 1 1 1~ 1 0 9 10^9 109的数相加时,其和sum要定义为long long类型,防止数据溢出。

C++代码如下:

#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
#include <cstring>
using namespace std;

int main()
{
   
	string s1, s2;
	cin >> s1 >> s2;
	int n = s1.size(), m = s2.size();
	long long sum = 0;
	for (int i = 0; i < n; i++){
   
		for (int j = 0; j < m; j++){
   
			sum += (long long)(s1[i] - '0') * (long long)(s2[j] - '0');
		}
	}
	cout << sum << endl;
	return 0;
}
例题4.2 密码翻译(北京大学复试上机题)
  • 解题思路:
    本题的关键在于如何读取一行字符(字符串间有空格,不能直接cin >> string)

- C++读取一行字符(包含空格)的方法

读取一行字符(字符串间有空格,不能直接cin >> string)

  • 使用 getline(cin, str, '结束符')
    其中,
  • str为std::string类型,可包含空格;
  • 结束符代表每行的终止标志(读到哪个字符停止),一般默认为回车符’\n’。如果默认,则可使用getline(cin, str)简化输入。

本题的C++代码如下:

#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值