本文共 926 字,大约阅读时间需要 3 分钟。
题目背景
无聊的题目
出题者
Lvat2000
难度
EASY
问题描述
定义与2,3,5无关的数如下: (1)位数不得是2,3,5的倍数; (2)该数不能被2,3,5整除; (3)该数必须为整数。 写一个判断一个数是否为与2,3,5无关的数的程序,如果有关,输出“No”,如果无关,输出“YeS”。
输入格式
一行一个数。
输出格式
要求用户的输出满足的格式。 一行,有关输出“No”,无关输出“YeS”.[不含引号]
样例输入
(样例1)13 (样例2)222 (样例3)999.9 (样例4)-7
样例输出
(样例1)No (样例2)No (样例3)No (样例4)YeS
数据规模和约定
n<=10^10000;
#include#include #include using namespace std;#define MAX 10000int main(){ string a[MAX]; int num=0; while(cin>>a[num]) { num++; } for(int i=0;i
思路:首先对接收数据的类型我选择的是string,因为用int ,小数会被截断,输入会导致错误,用double,不好求余数;
根据题目要求,编程要注意以下问题:
(1)位数不得是2,3,5的倍数
这个可以根据string的长度来,长度不是2,3,5的倍数就可以了,但是还要注意,如果这个数是小数,直接排 除,不用算,但如果是负数,string的长度因为有一位是“-”,所以要减一;
(2)该数不能被2,3,5整除;
直接找到字符串的最后一位,不是“0,2,4,5,6,8”说明不能被2,5整除;对于3,可以计算个各位的和,再通过是否可以求余3来判断能否被3整除,但是还要注意,如果是负数,计算各个位的和不包括符号位;
(3)该数必须为整数
只要判断没有小数点就好
蓝桥杯不支持C++11吗?用范围for报编译错误。。。只能改成数组,代码看起来好可怕。。。
代码写的有点复杂,如果有更简短精炼的,欢迎指正^0^