• PAT Advanced 1132 Cut Integer (20) [数学问题-简单数学]


    题目

    Cutting an integer means to cut a K digits long integer Z into two integers of (K/2) digits long integers A and B. For example, afer 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 x 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<=231). 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

    题目分析

    已知偶数K位正整数N,从中间分为两部分其长度相等的A,B两数,若N能被(A+B)整除,就满足条件,输出Yes,否则输出No

    解题思路

    1. 字符串截取左右部分
    2. N%(A+B)==0 -- Yes

    易错点

    1. A*B有可能为0,如:N=10

    Code

    #include <iostream>
    #include <string>
    using namespace std;
    int main(int argc,char * argv[]) {
    	int n,z;
    	scanf("%d",&n);
    	for(int i=0; i<n; i++) {
    		scanf("%d",&z);
    		string s= to_string(z);
    		int l = stoi(s.substr(0,s.length()/2));
    		int r = stoi(s.substr(s.length()/2,s.length()/2));
    		if(l*r!=0&&z%(l*r)==0) //l*r可能为0,比如10,测试点2,3 
    			printf("Yes
    ");
    		else
    			printf("No
    ");
    	}
    	return 0;
    }
    
  • 相关阅读:
    win10 下安装pip方法
    visual studio 打开微软MVC3示例MvcMusicStore的详细修改方法
    SQL Server 使用问题解答(持续更新中)
    SQL server数据库备份还原问题备忘(亲测有效)
    visual studio错误中断处理
    Eclipse调试
    nginx +lua +redis 构建自动缓存系统
    批量更新memcached缓存
    SQL Server 2008 表值参数用法
    架构设计方案
  • 原文地址:https://www.cnblogs.com/houzm/p/12260616.html
Copyright © 2020-2023  润新知