A1132 Cut Integer (20分)

一、技术总结

  1. 题意是理解上给定义一个数字m(假设有4位),让你分割成两块数字A(前两位)和B(后两位),然后判断m/(A*B)能否整除,如果能输出Yes否则输出No。
  2. 两个点,一个数字怎么分割,一个数字判断。
  3. 分割首先判断出数字的位数,然后再使用取余和整除来得到A和B;再就是判断了,这里有个地方需要注意,可能出现m = 4000的情况,这样的情况直接输出为No,如果再进行判断可能出现浮点错误,即分母为0。
  4. 还有就是pow(x, y)指数函数,输出结果为double型,然后取余%必须满足两个操作数都是整型,否则会报错。

二、参考代码

参考一:
#include<iostream>
#include<cmath>
using namespace std;
bool test(int num){
	int temp = num, A, B;
	int cnt = 0;
	while(num > 0){
		num /= 10;
		cnt++;
	}
	A = temp/(pow(10, cnt/2));
	B = temp%(int)(pow(10, cnt/2));
	if(A * B != 0 && temp%(A*B) == 0) return true;
	else return false;
}
int main(){
	int n;
	scanf("%d", &n);
	for(int i = 0; i < n; i++){
		int num;
		scanf("%d", &num);
		if(test(num)) printf("Yes
");
		else printf("No
");
	}
	return 0;
} 

参考二:
#include <iostream>
using namespace std;
int main() {
    int n, num;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &num);
        string s = to_string(num);
        int len = s.length();
        int a = stoi(s.substr(0, len/2));
        int b = stoi(s.substr(len/2));
        if (a * b != 0 && num % (a * b) == 0)
            printf("Yes
");
        else
            printf("No
");
    }
    return 0;
}
作者:睿晞
身处这个阶段的时候,一定要好好珍惜,这是我们唯一能做的,求学,钻研,为人,处事,交友……无一不是如此。
劝君莫惜金缕衣,劝君惜取少年时。花开堪折直须折,莫待无花空折枝。
曾有一个业界大牛说过这样一段话,送给大家:   “华人在计算机视觉领域的研究水平越来越高,这是非常振奋人心的事。我们中国错过了工业革命,错过了电气革命,信息革命也只是跟随状态。但人工智能的革命,我们跟世界上的领先国家是并肩往前跑的。能身处这个时代浪潮之中,做一番伟大的事业,经常激动的夜不能寐。”
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
原文地址:https://www.cnblogs.com/tsruixi/p/13096464.html