アットウィキロゴ
note4recurrent @ ウィキ
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

note4recurrent @ ウィキ

webテスト出題例

最終更新:

匿名ユーザー

- view
だれでも歓迎! 編集

【問題例1】1~30の数字を表示せよ。ただし、3の倍数と3を含む数字に"!"をつけて表示すること。(表示例:13!)


fizzbuzzの亜種のような問題です。
「3を含む数字」という点が初見だと焦るポイントでした。
現状、以下の対応で実行できています。
  • pythonではiと3をstr型にして、in演算子を適用させる。
  • javascriptでも同じくString型にして、incldesを適用。

pythonで記述 学校での学びに近い記述パターン

for i in range(1,31):     #30までの場合、+1した31でrangeを回す。
    if not i % 3:
        print("{}!".format(i))
    elif str(3) in str(i):   #部分一致を適用させるため、str型にしてin演算子を適用。
        print("{}!".format(i))
    else:
        print(i)

pythonで記述 面接で添削された結果

#elif文を省略し、orでひとまとめに。
#not i % 3は汎用性が低い可能性があるため、i % 3 == 0が好ましいという指摘あり。
for i in range(1,31):
   if i % 3 == 0 or str(3) in str(i):
       print("{}!".format(i))
   else:
       print(i)

javaScriptで記述

for(let index = 1; index < 31; index++){ 
    if (String(index).includes("3") || index % 3 == 0){ #orの意味にあたる||
        console.log(index+"!")
    }
    else{
        console.log(index)
    }
}

ーpaiza: 観覧車のゴンドラの数と定員(この観覧車は珍しくてゴンドラごとに乗車定員が違う)、待っている客のグループ数とグループの人数が与えられる。グループは同じグループでしか乗車しないので、5人乗りのゴンドラでも3人のグループが来た場合には3人だけ載せます。この条件で、各々のゴンドラが載せた人数をゴンドラ別に表示してください。
cgs =[4,5,3,8]#ゴンドラの定員を入れる配列
grp = [3,10,10,5]#客のグループ人数

#二次元配列
cg = [[0 for i in range(2)] for j in range(len(cgs))]

#二次元配列の0列にゴンドラの定員を入れる(1列には乗った人数を集計する)
for i in range(len(cgs)):
    cg[i][0]=cgs[i]

i = 0 #ゴンドラの制御
j = 0 #グループの制御

#1グループ毎にゴンドラに乗る人数を集計する
for j in range(len(grp)): #グループの数だけループする
    if cg[i][0] >= grp[j]: #ゴンドラの定員数がグループの人数より多い場合
        cg[i][1] += grp[j] #グループに人数をゴンドラの累計に加算
        i += 1              #ゴンドラを一つ進める
        if i > len(cgs)-1:  #ゴンドラの数が上限になったら最初のゴンドラに戻る
            i=0
    else:                   
        while grp[j]>0:     #ゴンドラの定員数よりグループの人数が多い場合にループする
            if grp[j] >= cg[i][0]: #ゴンドラの定員数よりグループの人数が多い場合
                cg[i][1] += cg[i][0] #ゴンドラの定員数を累計数に加算
                grp[j] -= cg[i][0]    #ゴンドラに乗った人数をグループの人数から減らす
            else:
                cg[i][1] += grp[j] #残った人数をゴンドラの累計に加算
                grp[j] = 0         #全員乗ったのでグループを0にする。whileを抜ける
            i += 1
            if i > len(cgs)-1:
                i=0
    
for i in range(len(cgs)):#ゴンドラの順番に表示
    print(cg[i][1])
+ タグ編集
  • タグ:
  • 自習
  • python
  • jabascript
最近更新されたスレッド
ウィキ募集バナー