Processing math: 10%

[洛谷 4157][SCOI2006]整数划分

题目链接

https://www.luogu.org/problem/P4157

题解

小清新找规律数学题?

我们先从比较小的整数开始找规律:

  • 4=2+2
  • 5=3+2
  • 6=3+3
  • 7=3+2+2
  • 8=3+3+2
  • \ldots

我们发现对于任意一个大于等于 5 的整数,把它拆分成若干个 32 的和,且 3 的个数最多时乘积最大。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
from math import *
n=int(input())
ans=1
while n>4 :
n=n-3
ans=ans*3
if n==4 :
ans=ans*4
elif n==3 :
ans=ans*3
elif n==2:
ans=ans*2
x=int(log(ans)/log(10))+1
print(x)
if x<=100 :
print(ans)
else :
while x>100 :
ans=ans//10
x=x-1
print(ans)
from math import * n=int(input()) ans=1 while n>4 : n=n-3 ans=ans*3 if n==4 : ans=ans*4 elif n==3 : ans=ans*3 elif n==2: ans=ans*2 x=int(log(ans)/log(10))+1 print(x) if x<=100 : print(ans) else : while x>100 : ans=ans//10 x=x-1 print(ans)
from math import *
n=int(input())
ans=1
while n>4 :
    n=n-3
    ans=ans*3
if n==4 :
    ans=ans*4
elif n==3 :
    ans=ans*3
elif n==2:
    ans=ans*2
x=int(log(ans)/log(10))+1
print(x)
if x<=100 :
    print(ans)
else :
    while x>100 :
        ans=ans//10
        x=x-1
    print(ans)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理