A:
解题思路:
这题看示例不难发现,答案就是a * b的每一项的和,例如111 111就是111*(1 + 1 + 1)= 333,知道后此题就迎刃而解了
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
int t;
long long a,b;
cin >> t;
while(t != 0){
int sum = 0;
cin >> a >> b;
while(b != 0){
sum += b % 10;
b = b / 10;
}
cout << a * sum << endl;
t--;
}
return 0;
}
B:
解题思路:
这题就是判断一个数每截取掉最后一位是是否都为素数,判断素数很简单,但是要注意数量级,10e4和10e6,如果直接判断的话肯定会超时,所以只需要判断到该数的平方分根即可,当判断某个数不为素数时,那就不需要判断其他的右截断数了,减少程序运行时间。
下面是c++代码:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int T,A;
cin >> T;
while(T != 0){
cin >> A;
int num = 1;
while(A != 0){
int sum = A;
if(sum == 1){
num = 0;
}
for(int i = 2;i <= sqrt(sum);i++){
if(sum % i == 0){
num = 0;
break;
}
}
if(num == 0){
break;
}
A /= 10;
}
if(num == 1){
cout << "YES" << endl;
}else{
cout << "NO" << endl;
}
T--;
}
return 0;
}
C:
解题思路:
这道题直接判断x + i * (y - x) / i * 1.0 == y是否为真,化成double型是因为如果能整除就相等,不能整除就为假,找到后直接break。
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
int t,x,y,a,b;
cin >> t;
while(t != 0){
cin >> x >> y;
if(x >= y){
cout << -1 << " " << -1 << endl;
}
for(double i = 1;i <= y - x;i++){
if(x + i * (y - x) / i * 1.0 == y){
cout << i << " " << (y - x) / i << endl;
break;
}
}
t--;
}
return 0;
}
D:
解题思路:
向下取整用到<cmath>库中的floor()函数,遍历数组和字符串,应为是一一对应的,所以就一起遍历,如果字符为'F',就判断arr[i] / 100向下取整和5谁大,就加上谁,如果为'T',就加上衣服价格,最后输出即可。
下面是c++代码:
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n, arr[1000];
long long num = 0;
string s;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
cin >> s;
for (int i = 0; i < n; i++) {
if (s[i] == 'F') {
if (floor(arr[i] / 100) > 5) {
num += floor(arr[i] / 100);
}
else {
num += 5;
}
}
else {
num += arr[i];
}
}
cout << num;
return 0;
}
E:
解题思路:
这道题卡了我好久,三种情况
(1).当m >= x时,输出x
(2).当x % m == 0s时,输出m
(3).输出x - (x / m) * m
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
unsigned long long n,m,x;
cin >> n;
for(int i = 0;i < n;i++){
cin >> m >> x;
if(m >= x){
cout << x << endl;
}else if(x % m == 0){
cout << m << endl;
}else{
cout << x - (x / m) * m << endl;
}
}
return 0;
}