SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
プログラマ脳を鍛える回
AtCoder Beginner Contest 006
1
スケジュール
問題回答A 10分
問題回答B 10分
問題回答C 20分
2
問題A
数字Nが与えられます。Nに3が含まれる、もしくは3で割り
切れる場合はYES、それ以外はNOと出⼒してください。
例 ⼊⼒ 出⼒
2
9
3
NO
YES
YES
3
次のスライドに解答例
4
問題A解答例
var test = '13';
function isIncluding3(num){
if(num.match(/3/)){
return true;
}else{
return false;
}
}
function isDivisible(num){
if(num % 3 == 0){
return true;
}else{
return false;
}
}
function check(num){
if(isIncluding3(num)){
return 'YES';
}else if(isDivisible(num)){
return 'YES';
}else{
return 'NO';
}
}
console.log(check(test));
5
問題B
フィボナッチ数列の仲間にトリボナッチ数列というものがあります。
この数列は3つ前までの数字を⾜したものです。
定義
トリボナッチ数列表
この数列の第n項、anを10007で割ったあまりを考えてください。
6
7
例
⼊⼒ 出⼒
7
1
100000
7
0
7927
ヒント
初めは純粋に任意のトリボナッチ数列を求めるプログラムを作成
しましょう。
以前取り組んだ問題のフィボナッチ数列が参考になると思います。
nが⼤きくなると桁あふれが起きてしまうと思います。
処理の⼿順を考えることで桁あふれを防ぐことができるので、考えてみて
ください。
8
次のスライドに解答例
9
問題B解答例
var test = 100000;
var count = test-3;
var a = b = 0;
var c = 1;
function tribonacci(){
if(count < 0){
return 0;
}
while(count > 0){
var d = (a+b+c)%10007;
a = b;
b = c;
c = d;
count--;
}
return c;
}
console.log(tribonacci());
//a,b,c 10007で割った合計がdになるので結局最後に10007で割るのと同じ 桁あふれを起こさないために使⽤
10
スフィンクスからの問題
スフィンクス「朝は四本⾜、昼は⼆本⾜、⼣は三本⾜。
この⽣き物は何か︖」
11
答え
⼈間
朝、昼、夜は⼈間の⼀⽣を1⽇に例えています。
夜が3本なのは⽼⼈を表していて、⽼⼈になると杖をつくので3本になるということで
す。
12
問題C
スフィンクス「この街には⼈間が N ⼈いる。⼈間は、⼤⼈、⽼⼈、⾚ちゃ
んの 3 通りだ。
この街にいる⼈間の、⾜の数の合計は M 本で、⼤⼈の⾜は 2 本、⽼⼈の
⾜は 3 本、⾚ちゃんの⾜は 4 本と仮定した場合、存在する⼈間の組み合わ
せとしてあり得るものを 1 つ答えよ。」
スフィンクスのなぞなぞの答えとなる「この街に存在する⼈間の組み合わ
せ」を1つ出⼒してください。
そのような組み合わせが存在しない場合はʼ-1 -1 -1ʼと出⼒してください
スフィンクスからなぞなぞを出されました。
13
例
⼊⼒ 出⼒
3 9
7 23
10 41
1 1 1
1 3 3
-1 -1 -1
14
次のスライドにあまり良くない解答例
15
16
var baby;
var adult;
var old;
var N = 7;
var M = 23;
function sphinx(){
//例にするために1にしているが0でも良いらしい
for(baby=1; baby<=N; baby++){
for(adult=1; adult<=(N-baby); adult++){
if(M == 2*adult+3*(N-(adult+baby))+4*baby){
old = N - (baby+adult);
return adult + " " + old + " " + baby;
}
}
}
return "-1 -1 -1";
}
console.log(sphinx());
あまり良くない解答例
17
for⽂などを使わずに答えを出すことができます。
ヒント
⼈間が最低何本の⾜を持っているか、合計の⾜の本数と
⼈間の⼈数の関係性を始めに考えてみると良いかも
しれません。
次のスライドに解答例
18
解答例
var babies;
var adults;
var olds;
var rest;
var N = 7;
var M = 23;
function sphinx(){
if (N * 2 > M || N * 4 < M) {
console.log("-1 -1 -1");
} else {
rest = M - N * 2;
babies = Math.floor(rest / 2);
olds = rest % 2;
adults = N - olds - babies;
console.log("%d %d %d", adults, olds, babies);
}
}
sphinx();
19
お疲れ様でした
20
AtCoder Beginner Contest 006(http://abc006.contest.atcoder.jp)を
参考にさせていただきました。

Más contenido relacionado

Destacado

Barbara A Roehl Resume
Barbara A Roehl ResumeBarbara A Roehl Resume
Barbara A Roehl Resume
Barbara Roehl
 
Caixa trab social remunerado
Caixa trab social remuneradoCaixa trab social remunerado
Caixa trab social remunerado
José Marques
 
Gotinha De áGua
Gotinha De áGuaGotinha De áGua
Gotinha De áGua
Costa
 

Destacado (11)

Barbara A Roehl Resume
Barbara A Roehl ResumeBarbara A Roehl Resume
Barbara A Roehl Resume
 
Caixa trab social remunerado
Caixa trab social remuneradoCaixa trab social remunerado
Caixa trab social remunerado
 
Spend wisely
Spend wiselySpend wisely
Spend wisely
 
Diploma Guide - Digital strategy sample chapter
Diploma Guide - Digital strategy sample chapterDiploma Guide - Digital strategy sample chapter
Diploma Guide - Digital strategy sample chapter
 
CPI Requerimento 68 - 08/09/09
CPI Requerimento 68 - 08/09/09CPI Requerimento 68 - 08/09/09
CPI Requerimento 68 - 08/09/09
 
History of the world vol 3 India and Buddha
History of the world vol 3 India and BuddhaHistory of the world vol 3 India and Buddha
History of the world vol 3 India and Buddha
 
Gotinha De áGua
Gotinha De áGuaGotinha De áGua
Gotinha De áGua
 
Launch of talview talent insights
Launch of talview talent insightsLaunch of talview talent insights
Launch of talview talent insights
 
Almacenamiento de-productos-quimicos
Almacenamiento de-productos-quimicosAlmacenamiento de-productos-quimicos
Almacenamiento de-productos-quimicos
 
Vetorh®: software de gestão de recursos humanos
Vetorh®: software de gestão de recursos humanosVetorh®: software de gestão de recursos humanos
Vetorh®: software de gestão de recursos humanos
 
Matecak
MatecakMatecak
Matecak
 

At corder006