目的:测试是否是cut整数
输入:
N <= 20
Z 整数,10<=Z<2^31
Z的位数保证是偶数个
输出:
是cut整数,输出Yes。
不是输出,No.
算法:
由于两个切割数乘积不会超过原数,所以int范围就够了。
用string存数字,可以变成int型。
#include<stdio.h>
#include<string>
#include<iostream>
using namespace std;
int n;
int d[13];
void init()
{
int v = 1;
for(int i=0;i<13;i++)
{
d[i] = v;
v = v*10;
}
}
int main()
{
init();
scanf("%d",&n);
for(int i=0;i<n;i++)
{
string s;
cin>>s;
int A = (stoi(s)/d[s.size()/2]);
int B = (stoi(s)%d[s.size()/2]);
if(A!=0&&B!=0&&stoi(s)%(A*B)==0)
{
printf("Yes\n");
}else
{
printf("No\n");
}
}
return 0;
}
反思:A,B在可能存在0。