1132 Cut Integer (20分)--PAT甲级真题

Cutting an integer means to cut a K digits lone integer Z into two integers of (K/2) digits long integers A and B. For example, after cutting Z = 167334, we have A = 167 and B = 334. It is interesting to see that Z can be devided by the product of A and B, as 167334 / (167 × 334) = 3. Given an integer Z, you are supposed to test if it is such an integer.

Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N (≤ 20). Then N lines follow, each gives an integer Z (10 ≤ Z <2​31). It is guaranteed that the number of digits of Z is an even number.

Output Specification:
For each case, print a single line Yes if it is such a number, or No if not.

Sample Input:

3
167334
2333
12345678

Sample Output:

Yes
No
No

题目大意:给出一个数字Z (10 ≤ Z <2​31),保证Z的数字个数为偶数;数字Z可以分成两个整数a和b(比如Z = 167334, 则有 a = 167, b = 334); 如果Z可以被a*b整除,则输出Yes,否则,输出No;

分析:
这里要把整数按照字符顺序分成两部分,最好按照字符串读入Z,然后分割出a和b;

一定一定要注意!!!a/b要保证b不为0,取余运算a%b,也要保证b不为0

#include<iostream>    
#include<string>
using namespace std; 
int main(){
	int n;
	string arr[22];
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
		cin >> arr[i];
	for (int i = 0; i < n; i++){
		int len = arr[i].length();
		string str1 = arr[i].substr(0, len / 2);
		string str2 = arr[i].substr(len / 2, len / 2); 
		int z = atoi(arr[i].c_str());
		int a = atoi(str1.c_str());
		int b = atoi(str2.c_str()); 
		if ((a*b != 0) && z % (a*b) == 0)
			printf("Yes\n");
		else
			printf("No\n");
	} 
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cutout数据增强是一种常用的数据增强方法,可以增加模型的泛化能力,从而提高模型的性能。其主要思想是在输入的图像中随机挖去一块矩形区域,使得模型在学习时对缺失的信息进行补充,从而增加模型的鲁棒性。 以下是Python实现Cutout数据增强的示例代码: ```python import numpy as np import cv2 def cutout(img, size=16): h, w, c = img.shape mask = np.ones((h, w, c), np.float32) y = np.random.randint(h) x = np.random.randint(w) y1 = np.clip(y - size // 2, 0, h) y2 = np.clip(y + size // 2, 0, h) x1 = np.clip(x - size // 2, 0, w) x2 = np.clip(x + size // 2, 0, w) mask[y1:y2, x1:x2, :] = 0 img = img * mask return img ``` 其中,函数cutout接受一个图像和一个整数参数size,表示挖去矩形区域的大小。在函数内部,首先获取输入图像的高度、宽度和通道数,然后随机生成挖去矩形区域的位置。根据矩形区域的位置和大小,生成一个遮罩矩阵,将矩形区域内的像素值设置为0。最后将原始图像与遮罩矩阵相乘,即可得到增强后的图像。 使用cutout数据增强可以通过以下方式实现: ```python img = cv2.imread('image.jpg') # 显示原始图像 cv2.imshow('Original Image', img) # 进行cutout数据增强 img = cutout(img) # 显示增强后的图像 cv2.imshow('Augmented Image', img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 其中,cv2.imread()函数用于读取图像,cv2.imshow()函数用于显示图像,cv2.waitKey()函数用于等待用户按下按键,cv2.destroyAllWindows()函数用于关闭窗口。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值