10 条题解

  • 1
    @ 2024-8-25 18:33:49

    问题简述

    输入自然数 aa,判断 37×a37\times a 是否各个数位都相等。

    思路

    • 先取 37a37a 的个位数(即 37amod1037a\bmod 10),作为基准值 cc
    • 然后,通过循环不断去除 37a37a 的个位数(即 37a37a 除以 1010 的整数部分),并检查每次剩余的数的个位数是否与基准值 cc 相等。
    • 如果在任何一个时刻发现不相等,即可判断 37a37a 的所有数位上的数字不相等,输出 No 并结束程序。
    • 如果循环结束(即 37a37a 被除尽)且所有数位上的数字都与基准值 cc 相等,则输出 Yes

    代码

    #include <iostream>
    using namespace std;
    int n;
    int main() {
    	cin >> n; 
    	n *= 37;
    	int c = n % 10;
    	while(n){
    		if(n % 10 != c){
    			cout << "No";
    			return 0;
    		}
    		n /= 10;
    	}
    	cout << "Yes";
    }
    

    信息

    ID
    40
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    909
    已通过
    428
    上传者