簡単な問題です。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
soyuta672

簡単な問題です。

#1

投稿記事 by soyuta672 » 8年前

2個の整数を読み込んで、n個の中からr個を取って
並べる順列の総数を出力するプログラムを書いてください。

(ヒント)
n個の中からr個を取って並べる順列の総数(nPr)は、

nPr=n×(n-1)×(n-2)×・・・×(n-r+1)

という式で求めることができます。

まずは簡単な問題1です^^

アバター
GRAM
記事: 164
登録日時: 9年前
住所: 大阪

Re: 簡単な問題です。

#2

投稿記事 by GRAM » 8年前

えぇ。簡単ですね。
とても簡単です。あなたにも答えは分かっているのでしょう?

アバター
bitter_fox
記事: 607
登録日時: 9年前
住所: 大阪府

Re: 簡単な問題です。

#3

投稿記事 by bitter_fox » 8年前

soyuta672 さんが書きました:2個の整数を読み込んで、n個の中からr個を取って
並べる順列の総数を出力するプログラムを書いてください。

まずは簡単な問題1です^^

コード:


object Main
{
	def main(args : Array[String])
	{
		var f = () => (Integer parseInt System.console.readLine)
		var (n, r) = (f(), f())
		println((Main ! n) / (Main ! n - r))
	}

	def !(n : Int) : Long = if (n > 0) n * (Main ! n - 1)  else 1
}

簡単でした。
[hr][修正]
正しくなかったので修正
[修正]
もうちょっと修正(関数名とか色々)

non
記事: 1097
登録日時: 9年前

Re: 簡単な問題です。

#4

投稿記事 by non » 8年前

問題を出していただいたので、解いてみました。採点をお願いします。(JAVA勉強中)

コード:

public class fact {
	static int fact(int n,int r){
		return n < r ? 1 : n * fact(n - 1,r);
	}
	public static void main(String[] args){
		int n=Integer.parseInt(args[0]);
		int r=Integer.parseInt(args[1]);
		System.out.println(n + "P" + r + "=" + fact(n,r));
	}
}
non

アバター
沖 滉均
記事: 237
登録日時: 9年前
住所: K県F市

Re: 簡単な問題です。

#5

投稿記事 by 沖 滉均 » 8年前

質問掲示板に出題とは考えていませんでした。
順列ってなんだっけ?と少々ボケ始めていたのでちょっと書いてみました。
► スポイラーを表示
おや?Tclは使えないのか…括弧が消えてしまうようだ

コード:

proc permute { n r } {
	if {$n < $r} {
		return 1
	} else {
		return [expr $n * [permute [expr $n - 1] $r]]
	}
}

if {$argc == 2} {
	set n [lindex $argv 0]
	set r [lindex $argv 1]

	puts [permute $n [expr $n - $r + 1]]
}
仕方ないのでテキストで載せましょうか、
こんな感じでいかがでしょうか?
There is no royal road to learning.
codeタグで指定できる言語
画像

アバター
h2so5
副管理人
記事: 2212
登録日時: 9年前
住所: 東京
連絡を取る:

Re: 簡単な問題です。

#6

投稿記事 by h2so5 » 8年前

コード:

n = ARGV[0].to_i
r = ARGV[1].to_i
 
result = 1
 
for i in (n-r+1)..n
        result *= i
end
 
print "#{n.to_s}P#{r.to_s} = #{result}\n"
どぞ^^

アバター
みけCAT
記事: 6247
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: 簡単な問題です。

#7

投稿記事 by みけCAT » 8年前

私も解いてみました。

コード:

   	 
   	
		     
	
		   	
	
		    
			
		        
   	
			 
 
		       	

	         
   	
			
        	 
   	 
			    
				  
   	 
 
			     
			   	
	  	    
 
			    	
	  	 
 
	       		

 
      	 

        		
   	 
				
 	   	 	 
	
  
         	
 


          



zyunretu
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6247
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: 簡単な問題です。

#8

投稿記事 by みけCAT » 8年前

普通にC言語で解いてみました。
本当に簡単ですね。

コード:

#include <stdio.h>

int main(void) {
	unsigned int n,r,result;
	scanf("%u%u",&n,&r);
	asm volatile (
		"mov %1,%%ebx\n\t"
		"mov %2,%%ecx\n\t"
		"mov $0,%%eax\n\t"
		"cmp $0,%%ebx\n\t"
		"jbe loopend\n\t"
		"cmp $0,%%ecx\n\t"
		"jb loopend\n\t"
		"mov $1,%%eax\n\t"
		"loopstart:\n\t"
		"cmp $0,%%ecx\n\t"
		"jbe loopend\n\t"
		"mul %%ebx\n\t"
		"dec %%ebx\n\t"
		"dec %%ecx\n\t"
		"jmp loopstart\n\t"
		"loopend:\n\t"
		"mov %%eax,%0\n\t"
	: "=m"(result)
	: "m"(n),"m"(r)
	: "%eax","%ebx","%ecx","%edx");
	printf("%u\n",result);
	return 0;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

めるぽん

Re: 簡単な問題です。

#9

投稿記事 by めるぽん » 8年前

Haskell で。

コード:

import Control.Applicative ((<$>))
 
main = do [n,m] <- map read <$> words <$> getLine
          print $ product [n-m+1..n]

たろ

Re: 簡単な問題です。

#10

投稿記事 by たろ » 8年前

未熟者ですがチャレンジしてみました。

コード:

<input id=n><input id=r><input type=button id=nPr>
<script>
document.getElementById('nPr').onclick=function(){
  var n=document.getElementById('n').value;
  var r=document.getElementById('r').value;
  var p=1;
  for(r=n-r+1; r<=n; r++) p*=r;
  alert(p);
}
</script>

アバター
ookami
記事: 214
登録日時: 9年前
住所: 東京都

Re: 簡単な問題です。

#11

投稿記事 by ookami » 8年前

簡単な問題と聞いて。

コード:

function permute(n,r)
    if(n<r) then
        return 1
    else
        return n*permute(n-1,r)
    end
end
print(permute(io.read(),io.read()))

アバター
h2so5
副管理人
記事: 2212
登録日時: 9年前
住所: 東京
連絡を取る:

Re: 簡単な問題です。

#12

投稿記事 by h2so5 » 8年前

ちょっと変則(´・ω・`)

コード:

$n = $_GET["n"];
$r = $_GET["r"];
$url = 'http://www.google.co.jp/search?q=(' . $n . '+choose+' . $r . ')+*+' . $r . '!';
header("HTTP/1.1 302 Found");
header("Location: " . $url);

アバター
GRAM
記事: 164
登録日時: 9年前
住所: 大阪

Re: 簡単な問題です。

#13

投稿記事 by GRAM » 8年前

流れに乗ってみる

コード:

#include <iostream>
using namespace std;

int main(){
	int n, r;
	cin >> n >> r;
	cout <<
"#include <iostream> \n" <<
"using namespace std; \n " <<
"template< int N > \n " <<
"struct Int{ \n " <<
"	enum { value = N }; \n " <<
"}; \n " <<
"template< typename T >  \n " <<
"struct Factorial{ \n " <<
"}; \n " <<

"template < int N > \n " <<
"struct Factorial< Int <N> >{ \n " <<
"	enum { value = Int<N>::value * Factorial< Int <N - 1> >::value }; \n " <<
"}; \n " <<

"template <> \n " <<
"struct Factorial< Int <0 > >{ \n " <<
"	enum { value = Int<1>::value }; \n " <<
"}; \n " <<

"template< typename T , typename U> \n " <<
"struct nPr{ \n " <<
"}; \n " <<

"template < int N , int R > \n " <<
"struct nPr< Int<N>, Int<R> >{ \n " <<
"	enum { value = Factorial< Int<N> >::value / Factorial< Int<R> >::value }; \n " << 
"}; \n " <<

"int main(){ \n " <<
"	cout << nPr< Int<" << n <<">, Int<" <<r <<"> >::value <<endl; \n " <<
"} \n " << endl;
}
日本語は解釈のしかたによりますよね
二つの数を受け取って
プログラムを書きます。

何の問題もない

アバター
bitter_fox
記事: 607
登録日時: 9年前
住所: 大阪府

Re: 簡単な問題です。

#14

投稿記事 by bitter_fox » 8年前

Java×JavaScriptです。

コード:


import javax.script.*;

public class Main
{
	public static void main(String[] args) throws ScriptException
	{
		int n = Integer.parseInt(System.console().readLine());
		int m = n - Integer.parseInt(System.console().readLine());
		ScriptEngine se = new ScriptEngineManager().getEngineByName("JavaScript");
		StringBuilder sb = new StringBuilder("print(");

		for (sb.append(n--); n > m; n--)
		{
			sb.append('*').append(n);
		}

		se.eval(sb.append(')').toString());
	}
}


しひ

Re: 簡単な問題です。

#15

投稿記事 by しひ » 8年前

OCamlで。

コード:

let f n r = Array.init (n-r) (fun i -> (n-i));;
let main = 
	let n = int_of_string Sys.argv.(1) in
	let r = int_of_string Sys.argv.(2) in
		Printf.printf "%d\n" (Array.fold_left (fun x y -> x * y) 1 (f n r));;

アバター
Cr
記事: 93
登録日時: 8年前

Re: 簡単な問題です。

#16

投稿記事 by Cr » 8年前

なでしこで

コード:

全体とは変数
選ぶ数とは変数
答えとは変数
答えは1
「nは?」と尋ねる
全体はそれ
「rは?」と尋ねる
選ぶ数はそれ
全体から全体-選ぶ数+1まで繰り返す
 答えは答え×それ
答えを表示

アバター
bitter_fox
記事: 607
登録日時: 9年前
住所: 大阪府

Re: 簡単な問題です。

#17

投稿記事 by bitter_fox » 8年前

JavaFX1です

コード:

import javafx.geometry.*;
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.scene.input.*;
import javafx.scene.layout.*;
import javafx.scene.text.*;

var textBoxN = TextBox
{
	columns : 3
}

var textBoxR = TextBox
{
	columns : 3
}

var labelAns = Label
{
	font : Font
	{
		size : 20
	}
}

Stage
{
	title : "Permutation"

	scene : Scene
	{
		content :
		[
			VBox
			{
				content :
				[
					HBox
					{
						content :
						[
							textBoxN, textBoxR,
							Button
							{
								text : "Permutation"

								onMouseClicked : function(e : MouseEvent) : Void
								{
									var n = Integer.parseInt(textBoxN.text);
									var r = n - Integer.parseInt(textBoxR.text) + 1;
									var nums = [r..n];
									var ans = 1;

									for (i in nums)
									{
										ans *= i;
									}
									labelAns.text = ans.toString();
								}
							}
						]
					},
					labelAns
				]
			}
		]
	}
}


アバター
沖 滉均
記事: 237
登録日時: 9年前
住所: K県F市

Re: 簡単な問題です。

#18

投稿記事 by 沖 滉均 » 8年前

さて、もう1つ作成してみたのでよろしければ確認してみていただけないでしょうか?
bashだと通常の演算が文字列の計算になってしまうのが面倒ですよね。

コード:

#!/bin/bash

if [ $# -eq 2 ]
then
	let n=$1
	let m=$2
	let p=1
	if [ $n -lt $m ]
	then
		p=1
	else
		let m="${n} - ${m} + 1"
		while [ $m -le $n ]
		do
			let p="${p} * ${m}"
			let m="${m} + 1"
		done
	fi
	echo $p
else
	echo "argument mismatch."
fi
[追記]
インデントに不備があったので修正
There is no royal road to learning.
codeタグで指定できる言語
画像

naohiro19
記事: 256
登録日時: 9年前
住所: 愛知県

Re: 簡単な問題です。

#19

投稿記事 by naohiro19 » 8年前

Visual Basicで

コード:

Module Module1

    Function Fact(ByVal n As Integer, ByVal r As Integer) As Integer
        If n < r Then
            Return 1
        Else
            Return n * Fact(n - 1, r)
        End If
    End Function

    Sub Main()
        Dim n As Integer
        Dim r As Integer
        n = CInt(Console.ReadLine())
        r = CInt(Console.ReadLine())
        Console.WriteLine(n + "P" + r + "=" + Fact(n, r))
    End Sub

End Module
[hr]
C++だと骨が折れるのでVBに変更(笑)
最後に編集したユーザー naohiro19 on 2011年11月10日(木) 15:40 [ 編集 2 回目 ]

mic16f88

Re: 簡単な問題です。

#20

投稿記事 by mic16f88 » 8年前

c++で書いたら難しいな笑

YuO
記事: 941
登録日時: 9年前
住所: 東京都世田谷区

Re: 簡単な問題です。

#21

投稿記事 by YuO » 8年前

せっかくなので。
バッチファイルでもできました。面倒なのでエラーチェックは省いています。
# XP以降なら動くはず。Vistaで確認。SET /Aで計算できることが条件です。

コード:

@ECHO OFF
SETLOCAL

IF "%~1"=="" (
  SET /P N=N
) ELSE (
  SET N=%~1
)
IF "%~2"=="" (
  SET /P R=R
) ELSE (
  SET R=%~2
)

SET /A N0=0+N 2>nul
SET /A R0=0+R 2>nul
SET N=%N0%
SET R=%R0%

SET V=1
:LOOP
SET /A V=V*N
SET /A N=N-1
SET /A R=R-1

IF %R% GEQ 1 GOTO LOOP

ECHO %N0%P%R0% = %V%

アバター
沖 滉均
記事: 237
登録日時: 9年前
住所: K県F市

Re: 簡単な問題です。

#22

投稿記事 by 沖 滉均 » 8年前

perl復習中なのでperlでも書いてみました。
最低限のエラーチェックしかしてませんが、perl5.6.1では動いてます。

コード:

#!/usr/bin/perl

if ($#ARGV == 1) {
	($n, $r) = @ARGV;
	if ($n > 0 && $r > 0 && $n >= $r) {
		$p = 1;
		for (($n - $r + 1)..$n) {
			$p *= $_;
		}
		print $p;
	}
}
There is no royal road to learning.
codeタグで指定できる言語
画像

non
記事: 1097
登録日時: 9年前

Re: 簡単な問題です。

#23

投稿記事 by non » 8年前

C#のコンソールアプリで書いてみました。おや、JAVAと同じだ。
ほんと、いろんな言語がありますね。
スレ主さんは、出てこないね。
みけCATさんのホワイトスペースってのは、言語にすら見れない。
面白そうだから、ちょっと調べてみよっと。

コード:

namespace ConsoleApplication1
{
    class Program
    {
        static int fact(int n, int r)
        {
            return n < r ? 1 : n * fact(n - 1, r);
        }

        static void Main(string[] args)
        {
            int n = int.Parse(args[0]);
            int r = int.Parse(args[1]);
            Console.WriteLine(n + "P" + r + "=" + fact(n,r));
        }
    }
}
non

beatle
記事: 1280
登録日時: 8年前
住所: 埼玉
連絡を取る:

Re: 簡単な問題です。

#24

投稿記事 by beatle » 8年前

C++で。

コード:

#include <iostream>
#include <iterator>
#include <numeric>
#include <functional>

template <typename T>
class CountIterator : public std::iterator<std::input_iterator_tag, T>
{
	T count_;
	const T diff_;
public:
	CountIterator(const T& count = 0, const T& diff = 1) : count_(count), diff_(diff) {}
	const T& operator *() const { return count_; }
	CountIterator& operator ++() { count_ += diff_; return *this; }
	bool operator !=(const CountIterator& rhs) const { return count_ != rhs.count_; }
	bool operator ==(const CountIterator& rhs) const { return !((*this) != rhs); }
};

int main()
{
	typedef unsigned long NumType;
	NumType n, r;
	std::cin >> n >> r;
	std::cout << std::accumulate(CountIterator<NumType>(n, -1), CountIterator<NumType>(n - r), 1, std::multiplies<NumType>()) << std::endl;
}
最後に編集したユーザー beatle on 2011年11月10日(木) 19:27 [ 編集 1 回目 ]

アバター
h2so5
副管理人
記事: 2212
登録日時: 9年前
住所: 東京
連絡を取る:

Re: 簡単な問題です。

#25

投稿記事 by h2so5 » 8年前

問題2はまだですか(´・_・`)

アバター
ookami
記事: 214
登録日時: 9年前
住所: 東京都

Re: 簡単な問題です。

#26

投稿記事 by ookami » 8年前

エクセルマクロで。
セルA1, A2を入力として、A3に答えを出力します。

コード:

Function permute(n as Integer, r as Integer)
    If n<r Then
        permute=1
    Else
        permute=n*permute(n-1,r)
    End If
End Function

Sub main()
    Cells(3,1).value=permute(Cells(1,1).value,Cells(2,1).value)
End Sub

アバター
h2so5
副管理人
記事: 2212
登録日時: 9年前
住所: 東京
連絡を取る:

Re: 簡単な問題です。

#27

投稿記事 by h2so5 » 8年前

コピペ出来ないので画像を貼りますね
event.jpg
event.jpg (27.32 KiB) 閲覧数: 2708 回

アバター
パコネコ
記事: 139
登録日時: 9年前
住所: 大阪

Re: 簡単な問題です。

#28

投稿記事 by パコネコ » 8年前

で遅れたw
まずは,って事は第2問に期待してもいいのでしょうか?

皆さんいろいろな言語で書かれていて私にはほとんど分からないですw
私は普通で申し訳ないですがC++で、

コード:

#include <iostream>
main(){int neko,n,r,i;for(printf("入力=n r:"),scanf("%d %d",&n,&r),i=1,neko=n;i<=r;n*=neko-i++)printf("%d\n",n);}
===============
あーかぶった...そしていろんな意味で負けた...ORZ
最後に編集したユーザー パコネコ on 2011年11月10日(木) 21:13 [ 編集 2 回目 ]
ニャン!!\(゜ロ\)(/ロ゜)/

アバター
bitter_fox
記事: 607
登録日時: 9年前
住所: 大阪府

Re: 簡単な問題です。

#29

投稿記事 by bitter_fox » 8年前

オーソドックスにCで頑張りました

コード:

n,r;main(a){scanf("%d%d",&n,&r);for(r=n-r;n>r;a*=n--);printf("%d",a);}

アバター
h2so5
副管理人
記事: 2212
登録日時: 9年前
住所: 東京
連絡を取る:

Re: 簡単な問題です。

#30

投稿記事 by h2so5 » 8年前

懐かしいTTSneo(´;ω;`)

コード:

ウィンドウ1の作成
ウィンドウ1を表示する
待機する

手順は ウィンドウ1の作成
’ウィンドウの設計で自動処理されますので
’次のプログラムは変更しないでください
’<ウィンドウ1>
ウィンドウ1を使う
	その中の大きさを(304,143)へ変える
	その名前を「ウィンドウ1」へ変える
	その背景を&h8000000Fへ変える
テキスト1を作る
	その位置と大きさを(30,20,250,20)へ変える
テキスト2を作る
	その位置と大きさを(30,50,250,20)へ変える
ボタン1を作る
	その位置と大きさを(110,90,90,40)へ変える
’</ウィンドウ1>
’部品の初期化などは、この次から書き加えてください
終わり
手順は ウィンドウ1のボタン1をクリック
    テキスト1の内容を、nへ入れろ
    テキスト2の内容を、rへ入れろ
    
    結果は、1
	(n-r+1)からnまでカウンタにカウントして繰り返せ
	  結果は、結果×カウンタ
	繰り返し終わり
    
    結果を表示
終わり

naohiro19
記事: 256
登録日時: 9年前
住所: 愛知県

Re: 簡単な問題です。

#31

投稿記事 by naohiro19 » 8年前

MSILで

コード:

.method private hidebysig static void  Main(string[] args) cil managed
{
  .entrypoint
  // コード サイズ       86 (0x56)
  .maxstack  4
  .locals init ([0] int32 n,
           [1] int32 r,
           [2] object[] CS$0$0000)
  IL_0000:  ldarg.0
  IL_0001:  ldc.i4.0
  IL_0002:  ldelem.ref
  IL_0003:  call       int32 [mscorlib]System.Int32::Parse(string)
  IL_0008:  stloc.0
  IL_0009:  ldarg.0
  IL_000a:  ldc.i4.1
  IL_000b:  ldelem.ref
  IL_000c:  call       int32 [mscorlib]System.Int32::Parse(string)
  IL_0011:  stloc.1
  IL_0012:  ldc.i4.5
  IL_0013:  newarr     [mscorlib]System.Object
  IL_0018:  stloc.2
  IL_0019:  ldloc.2
  IL_001a:  ldc.i4.0
  IL_001b:  ldloc.0
  IL_001c:  box        [mscorlib]System.Int32
  IL_0021:  stelem.ref
  IL_0022:  ldloc.2
  IL_0023:  ldc.i4.1
  IL_0024:  ldstr      "P"
  IL_0029:  stelem.ref
  IL_002a:  ldloc.2
  IL_002b:  ldc.i4.2
  IL_002c:  ldloc.1
  IL_002d:  box        [mscorlib]System.Int32
  IL_0032:  stelem.ref
  IL_0033:  ldloc.2
  IL_0034:  ldc.i4.3
  IL_0035:  ldstr      "="
  IL_003a:  stelem.ref
  IL_003b:  ldloc.2
  IL_003c:  ldc.i4.4
  IL_003d:  ldloc.0
  IL_003e:  ldloc.1
  IL_003f:  call       int32 ConsoleApplication1.Program::fact(int32,
                                                               int32)
  IL_0044:  box        [mscorlib]System.Int32
  IL_0049:  stelem.ref
  IL_004a:  ldloc.2
  IL_004b:  call       string [mscorlib]System.String::Concat(object[])
  IL_0050:  call       void [mscorlib]System.Console::WriteLine(string)
  IL_0055:  ret
} // end of method Program::Main

.method private hidebysig static int32  fact(int32 n,
                                             int32 r) cil managed
{
  // コード サイズ       18 (0x12)
  .maxstack  8
  IL_0000:  ldarg.0
  IL_0001:  ldarg.1
  IL_0002:  blt.s      IL_0010
  IL_0004:  ldarg.0
  IL_0005:  ldarg.0
  IL_0006:  ldc.i4.1
  IL_0007:  sub
  IL_0008:  ldarg.1
  IL_0009:  call       int32 ConsoleApplication1.Program::fact(int32,
                                                               int32)
  IL_000e:  mul
  IL_000f:  ret
  IL_0010:  ldc.i4.1
  IL_0011:  ret
} // end of method Program::fact

アバター
みけCAT
記事: 6247
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: 簡単な問題です。

#32

投稿記事 by みけCAT » 8年前

NScripterで書きました。

コード:

*define
game

*start
順列の計算をします。
nPrを計算します。\
*start2
mov %0,0
gosub *inputn
mov %1,0
gosub *inputr
mov %4,%0
mov %5,%1
gosub *calc
n=%4
r=%5
答えは%3です。@
もう一度計算しますか?
selnum %6,"はい","いいえ"
if %6=0 goto *start2
end

*inputn
nを入力してください。
現在のn=%0
selnum %2,"0","1","2","3","4","5","6","7","8","9","戻る","決定"
if %2=10 goto *backn
if %2=11 return
mul %0,10
add %0,%2
goto *inputn
*backn
div %0,10
goto *inputn


*inputr
rを入力してください。
現在のr=%1
selnum %2,"0","1","2","3","4","5","6","7","8","9","戻る","決定"
if %2=10 goto *backr
if %2=11 return
mul %1,10
add %1,%2
goto *inputr
*backr
div %1,10
goto *inputr

*calc
mov %3,1
*calcloop
if %1=0 return
mul %3,%0
sub %0,1
sub %1,1
goto *calcloop
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
h2so5
副管理人
記事: 2212
登録日時: 9年前
住所: 東京
連絡を取る:

Re: 簡単な問題です。

#33

投稿記事 by h2so5 » 8年前

久しぶりのFlash。
でもjavascriptと変わらない...

コード:

on (click) {
	var n = _root.num_n.value;
	var r = _root.num_r.value;
	
	var result = 1;
	for (var i = n; i >= n - r + 1; i--) {
		result *= i;
	}
	
	_root.result.text = result;
}

box
記事: 1746
登録日時: 9年前

Re: 簡単な問題です。

#34

投稿記事 by box » 8年前

トピックを立てた人は、もう見てないのではないかと思います。
そろそろ、やめにすれば?
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
みけCAT
記事: 6247
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: 簡単な問題です。

#35

投稿記事 by みけCAT » 8年前

ActiveBasicです。

コード:

#N88BASIC
10  Dim N As QWord
20  Dim R As QWord
30  Dim ANS As QWord
40  PRINT "nPrを計算します。"
50  INPUT "n=",N
60  INPUT "r=",R
70  LET ANS=1
80  WHILE R>0
90  	LET ANS=ANS*N
100 	LET N=N-1
110 	LET R=R-1
120 WEND
130 PRINT "答えは";ANS;"です。"
140 GOTO 40
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
みけCAT
記事: 6247
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: 簡単な問題です。

#36

投稿記事 by みけCAT » 8年前

HSPです。

コード:

title "階乗の計算"
mes "nPrを計算します。"
mes "↓n"
input n,100,25,10
mes "↓r"
input r,100,25,10
button goto "計算",*calc
stop
*calc
ans=1
nn=n
rr=r
while rr>0
	ans*=nn
	nn--
	rr--
wend
dialog "答えは"+ans+"です。",0,"結果"
stop
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

しひ

Re: 簡単な問題です。

#37

投稿記事 by しひ » 8年前

Schemeで。

コード:

(define n (string->number (car (command-line-arguments))))
(define r (string->number (cadr (command-line-arguments))))
(display (fold * 1 (iota (- n r) n -1)))

しひ

Re: 簡単な問題です。

#38

投稿記事 by しひ » 8年前

消えた・・・

コード:

(use srfi-1)
(define n (string->number (car (command-line-arguments))))
(define r (string->number (cadr (command-line-arguments))))
(display (fold * 1 (iota (- n r) n -1)))

アバター
Dixq (管理人)
管理人
記事: 1661
登録日時: 9年前
住所: 北海道札幌市
連絡を取る:

Re: 簡単な問題です。

#39

投稿記事 by Dixq (管理人) » 8年前

ほとぼりも冷めたようですし、ご質問に対する回答致しますね。

soyuta672さんがこのトピックを立てた理由は何でしょうか?
課題のため?皆さんのコーディングの仕方をみたかったため?雑談トピックだった?

もしC言語の課題として出されたもので、C言語の一般的なコードが知りたければお手伝いしますので、順番に解いていきましょう。
まず、何が分からないか・どこまで分かるのかを明確にして下さい。

C言語のコードが知りたいのかどうかもまだこちらには分からないので、まずは、そこから教えて下さい。
もし課題であるならば頑張って少しずつ解いていきましょう。

閉鎖

“C言語何でも質問掲示板” へ戻る