演算法題 平衡數

2021-08-02 19:50:42 字數 941 閱讀 4811

牛牛在研究他自己獨創的平衡數,平衡數的定義是:將乙個數分成左右兩部分,分別成為兩個新的數。 左右部分必須滿足以下兩點:

1,左邊和右邊至少存在一位。 2,左邊的數每一位相乘如果等於右邊的數每一位相乘,則這個數稱為平衡數。

例如:1221這個數,分成12和21的話,1*2=2*1,則稱1221為平衡數,再例如:1236這個數,可以分成123和1*2*3=6,所以1236也是平衡數。而1234無論怎樣分也不滿足平衡數。

輸入描述:輸入乙個正整數(int範圍內)。

輸出描述:如果該數是平衡數,輸出 「yes」, 否則輸出 「no」。

輸入例子:1221 1234

輸出例子:yes no

先考慮0的個數,如果只有乙個0 ,怎麼分都不平衡

大於乙個0則可以平衡

沒有0時,遍歷陣列判斷平衡即可

#include 

#include

#include

#include

#include

using

namespace

std;

//#define debug_

void func(string str)

}if (zeronum==1)

else

if (zeronum >1)

right /= vec[0];

left = left*vec[0];

for (auto i = 1; i < vec.size();++i)

}cout

<< "no"

<< endl;

}int main()

平衡數演算法實現

給定乙個整數值,若能有整數前半部分乘積與剩餘部分乘積相等,則為平衡數。例如 輸入1236 輸出true 分析 123 6 輸入1221 輸出true 分析 12 21 輸入1000 輸出true 分析 10 00 100 0 首先將整數拆分成整數陣列n1。定義兩個變數p,q,分別代表陣列第乙個下標值...

演算法題 醜數

2 3和5的數稱作醜數 ugly number 例如6 8都是醜數,但14不是,因為它包含因子7。習慣上我們把1當做是第乙個醜數。求按從小到大的順序的第1500個醜數。所謂乙個數m是另乙個數n的因子,是指n能被m整除,也就是n m 0。根據醜數的定義,醜數只能被2 3和5整除。也就是說如果乙個數如果...

演算法題 取數

題目 首先給出n個數字a1,a2,a 3,a na1,a2,a3,an a1,a2,a3,an 然後給你m mm個回合,每回合你可以從中選擇乙個數字取走它,剩下來的每個數字aiai ai都要遞減乙個值bibi bi,即a 1a1 a1減掉b 1b1 b1,a 2a2 a2減掉b 2b2 b2,如此重...