|
1.正整数nに対して、nを十進表示したときの各桁の数字の和をa(n)で表す。
a(1)+a(2)+・・・+a(999) を求めよ。
2.正整数nに対して、nを十進表示したときの0でない各桁の数字の積をb(n)で表す。
b(1)+b(2)+・・・+b(999) を求めよ。 問題の出典ジュニア数学オリンピック 2003-2008
数学オリンピック財団 編 解答
上記サイトより Orz〜
・わたしの
(1)
000〜999 までの各桁の数字の和なので... Σa(n)=(1+2+...+9)*102*3=45*3*100=13500 (2)
0 :1〜9...;2+...+9=45 10〜90 :(1+2+...+9)*45=452 100〜900 :(1+2+...+9)*452=453 0でない桁の積も加える… 0 が1個のとき…二桁のときと三桁のとき...45+2*452 0 が2個のとき...三桁のとき…45 けっきょく... Σb(n)=3*45+3*452+453=97335 ・迷子の雄猫さんのもの Orz〜
1.
a(0)=a(000)=0 a(1)=a(001)=1であるので、 a(1)+a(2)+・・・+a(999)を求める代わりに、 a(000)+a(001)+a(002)+・・・+a(999)を求めても同じである。 さて、1の位だけ考えてみよう。 a(??0)+a(??1)+a(??2)+・・・+a(??9)は、 a(123456789)であるので45。??の部分は00〜99までの100個あるので 合計は4500である。10の位、100の位も同様であるので、答えは13500。 2.
さて、b(0)=1、b(1)=b(001)=1である。 1の位だけ考えてみよう。 b(??0)+b(??1)+b(??2)+・・・+b(??9)は、 b(??)の46倍。??の部分は00〜99までの100個ある。 b(?0)+b(?1)+b(?2)+・・・+b(?9)は、b(?)の46倍。 ?の部分は0〜9までの10個ある。 よって結局、b(0)+b(1)+b(2)+・・・+b(999)は、46の三乗で97336。 よってb(1)+b(2)+・・・+b(999)は97335。 ・falcon@中学教師さんのもの Orz〜
<答え>
(1)13500 (2)97335 <考え方>
(1) 上2桁が00であるnについて、a(n)の総和は45 上2桁が01であるnについて、a(n)の総和は55 ・ ・ ・ 上2桁が09であるnについて、a(n)の総和は135 さらにこれらの総和、つまり上1桁が0であるnについてのa(n)の総和は900となる。 同様にして上1桁がmであるnについてのa(n)の総和を求め、c(m)と表現することにする。 a(1)+a(2)+・・・+a(999) =c(0)+c(1)+・・・+c(9) =900+1000+・・・+1800 =13500 (2)
それぞれの位の数は0〜9であり、3桁の位の数をかけたものの総和は、 (0+1+2+・・・+9)の3乗になる。 しかし、今回の問題では0は無視するので、位に0が現れたときは代わりに1をかけていると考えると、 (1+1+2+・・・+9)の3乗になる。 さらにこれではn=000という数字を考えているので、1を引く。 よって b(1)+b(2)+・・・+b(999) =(1+1+2+・・・+9)3-1 =463-1 =97336-1 =97335 ・tekiさんのもの Orz〜
1 13500
これは単純ですね。 0〜9が100個ずつ各桁にあるので、45×100×3=13500 2 97335
まともに計算するにはプログラムでも組まないと無理ですが、 ちょっと工夫すれば何とか計算できます。 1〜999ではなく、0〜999で考えます。 0〜999を無理矢理3桁にします。(0→000、1→001・・・・・・・・) で、この0を1に置き換えます。 すると、111,111,112・・・・・・・999となりますが、これの各桁は1+45=46です。 よって題意の合計は、46×46×46−1=97335。(最後の−1は0の分) ・マシャさんのもの Orz〜
1【解答】
a(0) = 0 なのでa(0) + … + a(999)を考えても良い 各桁に表れる数字の個数を考えると 000から999までなので, それぞれ100個ずつ現れる. 最大桁数は3桁なので3通り存在する. (0+1+…+9)*100*3 = 13500 答え 13500 【過程】 まず例にいくつか値を求めようと a(1) = 1 a(9) = 9 a(10) = 1+0 a(11) = 1+1 と"縦"に書いたら 「横に考えるのではなく縦に考えたら?」 と思い, 数字の出現パターンに気がつきました. 2【解答】
各桁に0が表れる個数によって場合分けする. (但し, 1, 10などは001, 010と考える) (i) 0が3個の場合 000のみなので 0 (ii)0が2個の場合 001から009とその0の位置に関して3通りなので (1+…+9)*3 (iii)0が1個の場合 011から099とその0の位置に関して3通りなので 積の和を以下のように因数分解できる (1+…+9)*(1+…+9)*3 (iv)0が0個の場合 (iii)と同様に考えて (1+…+9)*(1+…+9)*(1+…+9) (i)から(iv)より 0+(1+…+9)*3+(1+…+9)*(1+…+9)*3+(1+…+9)*(1+…+9)*(1+…+9) ={(1+…+9)+1}3 - 1 =97335 答え 97335 ・ちょろんは太太さんのもの Orz〜
(1)
a(n)+a(999-n)を考える。 nのそれぞれの位の数を s, t, u とすれば、999-n のそれぞれの位は、9-s, 9-t, 9-u a(n)+a(999-n)=s+t+u+(9-s)+(9-t)+(9-u)=27 よって、 a(1)+a(2)+・・・+a(998)+a(999)=(27×998)/2+a(999)=27×500=13500 (2)
100の位をs、10の位をt、1の位をuとしたとき、 999までの正の整数は、s=0,1,…8,9t=0,1,…8,9u=0,1,…8,9から s、t、uを一つずつ取り出したすべての組み合わせ。ただし、s=t=u=0は除く。 s、t、uのすべての組み合わせの積s×t×uの総和は、 (sの総和)×(tの総和)×(uの総和) ただし、s=t=u=0の分は差し引く。 また、数字が0である場合は、b(n)は、それ以外の数の積とするので、 0は、'1'の積として作用する。以上をまとめると、 (b(1)+b(2)+・・・+b(998)+b(999) =(1+1+2+3+・・・+8+9)×(1+1+2+3+・・・+8+9)×(1+1+2+3+・・・+8+9)-b(000) =46×46×46-1=97335 *各桁の数字の積を求める巧そうな方法あるのねぇ♪ 熟読玩味〜^^;v
|

- >
- Yahoo!サービス
- >
- Yahoo!ブログ
- >
- 練習用


