忠实数
难度:白银
0时间限制:1秒
巴占用内存:64M
如果一个数是7的幂,或者能分解成7的不同幂的和,那么这个数就叫做忠实数」
例如49=49,8=1+7,57=1+7+49。注意1可以看成7的0次方。输入正整数
N,判断它是不是忠实数,输出YES或者NO。
格式
输入格式:输入正整数N
输出格式:输出YES或者NO
//
// Created by abner on 2022/11/11.
//
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >>n;
while (n/7){
if(n%7==0)
n=n/7;
else if (n%7 == 1)
n=(n-1)/7;
else{
cout<<"NO";
return 0;
}
}
if(n==1)cout<<"YES";
else cout<<"NO";
return 0;
}
2. Abstract Factory(抽象工厂)
意图:
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
适用性:
一个系统要独立于它的产品的创建、组合和表示时。
一个系统要由多个产品系列中的一个来配置时。
当你要强调一系列相关的产品对象的设计以便进行联合使用时。
当你提供一个产品类库,而只想显示它们的接口而不是实现时。
3. Builder(建造者)
意图:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
适用性:
当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
当构造过程必须允许被构造的对象有不同的表示时。
4. Prototype(原型)
意图:
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
适用性:
当要实例化的类是在运行时刻指定时,例如,通过动态装载;或者
为了避免创建一个与产品类层次平行的工厂类层次时;或者
当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。
详解:设计模式是什么鬼(原型)
5. Singleton(单例)
意图:
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
适用性:
当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。
详解:设计模式是什么鬼(单例)
结构型
6. Adapter Class/Object(适配器)
意图:
将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
适用性:
你想使用一个已经存在的类,而它的接口不符合你的需求。
你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
(仅适用于对象Adapter )你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。