1132. Cut Integer (20)

题目:

https://www.patest.cn/contests/pat-a-practise/1132

大概描述:

将一个数进行拆分,将拆开的数相乘,判断是否为原数的因数

特征词:

数的运算

使用语言:

C++

解题思想:

就是用longlong 型进行存储,然后判断出位数

题目得分:

20

提交次数:

2

时间

26分钟

代码

#include<cstdio>
//Long Long 在使用时要注意初始化为0,不然很容易高位不为0
long long a = 0;
long long b = 0;
int panduan(long long c){
 int i = 0;
 // printf("c = %ld",c);
 while(c != 0){
 i ++;
 c = c / 10;
 // printf("c = %ld\n",c);
 }
 //printf("weishu :%d\n",i);
 return i ;
}
void disb(long long c){
 int wei1 = panduan(c);
 int i = 0;
 long long m = 1;
 for(i = 0;i < wei1 / 2;i++){
 m *= 10;
 }
 //printf("m = %ld",m);
 a = c % m;
 b = c / m;
}

int main(){
 int i = 0;
 int num = 0;
 scanf("%d",&num);
 long long test = 0;
 for(i = 0;i < num;i++){
 scanf("%ld",&test);
 disb(test);
 if(a * b == 0){
 printf("No\n");
 }else
 if(test % (a * b) == 0){
 printf("Yes\n");
 }else{
 printf("No\n");
 }
 }

}

运行结果

20

 成长

第一次遇到浮点错误,是因为除数为0,导致的

发表评论

电子邮件地址不会被公开。 必填项已用*标注