1 条题解

  • 0
    @ 2025-8-24 22:46:18

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar Nuyoah_awa
    事实证明,你没让我失望。

    搬运于2025-08-24 22:46:18,当前版本为作者最后更新于2023-04-09 22:01:48,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题目大意

    给定两个非整数,判断这两个数相减是否为整数。

    题目分析

    思路一:

    如题,两数相减,判断是否为整数。

    主要代码:

    int main(){
    	a -= b;
    	if(a - (int)(a) == 0.000000000000)
    		printf("YES");
    	else
    		printf("NO");
    	return 0;
    }
    

    思路二:

    分别删去两数的整数部分,判断剩余是否相等。

    主要代码:

    int main(){
    	a -= (int)(a);
    	b -= (int)(b);
    	if(a == b)
    		printf("YES");
    	else
    		printf("NO");
    	return 0;
    }
    

    思路三:

    鉴于前两种思路容易挂精度,我们观察思路二,实际上就是判断两数的小数部分是否相等,因为输入时两数都保留 1212 位小数,所以我们读入时可以将整数部分用 int 读入,小数点用字符读入,小数部分用字符串读入,即可比较两数的小数部分了。

    AC code:

    #include <iostream>
    #include <cstdio>
    
    using namespace std;
    
    int a, b;
    char c;
    string s1, s2;
    
    int main()
    {
    	cin >> a >> c >> s1 >> b >> c >> s2;
    	(s1 == s2) ? printf("YES") : printf("NO");
    	return 0;
    }
    
    • 1

    信息

    ID
    8539
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者