第一道題,707829217開方數以內的數,也就30000以內,暴力列舉進行素數檢查就行。
附加題:
排列組合+遞迴分治
附加題程式:
def zuheshu(n, k):#cnk
fenzi = 1;
fenmu = 1;
for i in range(k):
fenzi *= n-i;
fenmu *= i+1;
return fenzi/fenmu;
def ndigit_num3_p(n):#任意n位數所含的3的總數
sum = 0;
for i in range(n):
k = i+1;
sum += k * zuheshu(n,k) * pow(9, n-k)
return sum
def ndigit_num3_q(n):#以3開頭的任意n+1位數所含3的總數
sum = 0;
for i in range(n+1):
k = i;
sum += (k+1) * zuheshu(n,k) * pow(9,n-k)
return sum;
def jiou_res(num):#0~num的任意數所含3的總數,
if num < 3:
return 0;
if num < 10:
return 1;
strnum = str(num)
head = int(strnum[0])
n = len(strnum) - 1
tail = int(strnum[1:])
if head < 3:
res = head*ndigit_num3_p(n) + jiou_res(tail)
elif head == 3:
res = head*ndigit_num3_p(n) + (tail+1) + jiou_res(tail)
else:
res = (head-1)*ndigit_num3_p(n) + ndigit_num3_q(n) + jiou_res(tail)
return res;
def main_hzq():
res = jiou_res(707829217) - jiou_res(70782921)*4 - jiou_res(70782920)
print(res)
一道演算法題
兩個燒杯,乙個放糖乙個放鹽,用勺子舀一勺糖到鹽,攪拌均勻,然後舀一勺混合 物會放糖的燒杯,問你兩個燒杯哪個雜質多?一樣多吧 對的 為啥?是不是因為 糖和鹽本來就是均勻的 因為,就算不攪拌均,你放一勺過去,那邊放一勺不含雜質的過來,那麼都是一勺雜之 如果攪拌均勻的話也是一樣 小依 21 45 32 也...
一道演算法題
1.上午主要做了對翻譯任務的劃分,下午把 翻譯完畢。2.明天要講的演算法題 對乙個集合,求出其連續元素組成的子集中,和最大的子集 我對這道題的理解是 1 若集合中最小值大於0,意味著所有的都大於0,則最大的子集和,為所有值加起來 2 若集合中最大值小於0,意味著所有的都小於0,則最大的子集和,為集合...
一道演算法題
include using namespace std const int size 5 int max sub array const int a,int n,int m int max matrix const int a size int row,int col,int subsize int...