Div3 C good number easy version

Posted thesunandsnow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Div3 C good number easy version相关的知识,希望对你有一定的参考价值。

good numbers easy version

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
	int q, n;
	while(cin >> q){
		while(q--){
			cin >> n;
			int m = n;
			int i = 0;//i用来计数,计算n需要加多少个1才能变成good number 
			while(1){
				bool flag = true;//flag为true说明m是good number否则不是 
				while(m > 0){
					if(m % 3 == 2){//满足条件说明m不是good number 
						flag = false;
						break;
					}
					m /= 3;
				}//注意while循环结束后m很有可能不是原值 
				if(flag == true){
					cout << n + i << endl;//正因为m不是原值,才输出n + i
					break;
				}
				else{
					++i;
					m = n + i;
				}
			}
		}
	}
}

输入值n一直除3至0,在这个过程中只要n % 3 == 2就说明n不是good number,因为2 == 3^0 + 3^0

 

以上是关于Div3 C good number easy version的主要内容,如果未能解决你的问题,请参考以下文章

560 div3 B. Long Number

C - The Number Of Good Substrings CodeForces - 1217C

A. Nastia and Nearly Good Numbers1000 / 思维 构造

赛时总结◇赛时·V◇ Codeforces Round #486 Div3

1512. Number of Good Pairs

Good number(3进制)