上海计算机学会2021年4月月赛C++丙组T1巧妙的数

题目描述

如果一个十进制整数能够被它的每一个非零数码整除,则称它为巧妙的数,譬如 102 是一个巧妙的数,因为 102 能被 1 与 2 整除,而 2021 不是,因为它不能被 22整除。给定一个 n,请判定它是否为巧妙的数。

输入格式

单个整数:表示 n。

输出格式
  • 如果 n 是一个巧妙的数,输出 clever
  • 否则,输出 not clever
数据范围
  • 对于 30%的数据,1≤n≤109;
  • 对于 60%的数据,1≤n≤1018;
  • 对于 100的数据,1≤n≤101000。
样例数据

输入:

102

输出:

clever

输入:

2050

输出:

clever

输入:

13

输出:

not clever

题解

本题关键点: 模拟法进行计算,代码如下。

cpp 复制代码
#include<iostream>
#include <string>
using namespace std;
int main() {
	int a[10]; 
	int num[1010];   
	string s;
	cin>>s;
	int len = s.size();
	bool result = true; 
	for(int i = 0;i < s.size();i ++)
	{
		num[i] = s[i] - '0';
		a[num[i]] ++;   
	}		    
	for(int j = 1;j <= 9;j ++){  
		if(a[j]) { 
			int x = 0;  
			for(int i = 0;i < len;i ++){  
				x = x * 10 + num[i];
				x = x % j;
			}
			if(x != 0) {
				result = false; 
				break; 
			} 
		}
	}	
	if(result) {
		cout << "clever" ;
	}else {
		cout << "not clever";	
	}
	return 0;
}
相关推荐
Dlrb12114 小时前
C语言-指针三
c语言·算法·指针·const·命令行参数
kkeeper~4 小时前
0基础C语言积跬步之深入理解指针(5下)
c语言·开发语言
Tisfy4 小时前
LeetCode 2540.最小公共值:双指针(O(m+n))
算法·leetcode·题解·双指针
一直不明飞行4 小时前
Java的equals(),hashCode()应该在什么时候重写
java·开发语言·jvm
IronMurphy5 小时前
【算法四十七】152. 乘积最大子数组
算法
REDcker5 小时前
有限状态机与状态模式详解 FSM建模Java状态模式与C++表驱动模板实践
java·c++·状态模式
盲敲代码的阿豪5 小时前
Python 入门基础教程(爬虫前置版)
开发语言·爬虫·python
basketball6165 小时前
C++ 构造函数完全指南:从入门到进阶
java·开发语言·c++
互联科技报5 小时前
2026超融合选型:Top5品牌与市场格局解读
开发语言·perl
weixin199701080166 小时前
[特殊字符] 智能数据采集:数字化转型的“数据石油勘探队”(附Python实战源码)
开发语言·python