エントリー

※注意:このエントリーは、旧日記「みおだいあり~」からデータを移管したものです。

[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;
} 

ページ移動

コメント

  • コメントはまだありません。

コメント登録

  • コメントを入力してください。
登録フォーム
名前 *
URL
コメント *
閲覧制限 *
【スパム対策】 2 × 2 × 2 = ? (半角数字で)

ユーティリティ

user profile

calendar

102024/1112
S M T W T F S
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

tag cloud