- 2008/10/2500:00
[Perl] Perl30分間トレーニング#3
Perl30分間トレみっかめ。
今回挑んだ問題は、前回に引き続き↓これ↓。
問題7は、azumayaさんが回答編を投稿してくださったので、スキップ。
問題8の答案
#! /usr/local/bin/perl use Math::BigInt; $a = <>; $b = <>; $g = Math::BigInt::bgcd($a, $b); $l = Math::BigInt::blcm($a, $b); print "$g\n$l\n";
最大公約数といえば「ユーグリッドの互除法」ですが、Math::BigIntモジュールを使って、楽をしてみました。
問題9の答案
#! /usr/local/bin/perl $_=<>,s/\s//g?printf"%s\n",$_=reverse$_:$_;
頑張って、短くしてみましたw
問題10の答案
#! /usr/local/bin/perl use strict; use Acme::Comment type => 'C++'; use POSIX qw(ceil); /* 問題の要約: ヤミ金融から10万円を借金したまま。 そのヤミ金融では、1週間ごとに5%の利子が借金に加算。 しかも、1,000円未満は切り上げられる。 まったく返済しなかった場合の、n週間後の借金の残高は? ※ただし、nは100以下の整数。 */ // 出力時の終端文字を定義 $\ = "\n"; // ループ用変数を定義 my $w = 0; // ヤミ金融から最初に借りた金額 my $debt = 100.000; // n(週)を標準入力から受け取る my $n = <>; // 空白文字(\t\n\r\f)を削除 $n =~ s|\s||g; // n週間後の借金の残高を算出する for ($w = 0; $w < $n; $w++) { $debt = ceil($debt * 1.05) * 1.000; } // int型に変換 $debt = int $debt * 1000; // 借金の残高を出力 print $debt; // 正常に終了 exit 0;
Cっぽく、書いてみました。
問題11は、力任せで解くしかないの・・・?
いい方法が思いつきませんorz.
#####コメント#####
- 本日のツッコミ
- たこ (2008年10月25日(Sat) 20:03)
- C言語版問題11解答例
#include<stdio.h> int main(void){ int i, j, k, l, n; int count; scanf("%d", &n); for(i = 0, count = 0; i < 10; i++)for(j = 0; j < 10; j++)for(k = 0; k < 10; k++)for(l = 0; l < 10; l++)if(i + j + k + l == n)count++; printf("%d\n", count); return 0; }
- 2008/10/25 00:00
- 旧日記のアーカイブ
- Permalink
- nmio
- Comment(0)
comment