C言語のプログラミングについて

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

C言語のプログラミングについて

#1

投稿記事 by 村泉葉上 » 16年前

この問題の答えや解答の指針をわかる範囲でいいので教えてください。

正整数の組(u,n)(但しu>1,n≧3)が最大2048個書かれたファイルを読み込み、個々の組に対し、以下の式(1)で定められるdと、この時の(x,y,z)の組を1つ求めよ。


(注)Nはn乗という意味です。uN は uのn乗 xN は xのn乗 yN は yのn乗 zN は zのn乗

d = uN - max{xN + yN +zN | x>0,y>0,z>0, xN + yN + + zN ≦ uN} (1)

但し、求めた結果を出力する際には、入力で与えられた組(u,n)も合わせて出力すること。

つまり与えられた二つ組(u,n)からなる数uNに対し、三つ組(x,y,z)及びnによって構成される式 xN + yN + zN との差が最小になる組を探索するプログラムを作れ、ということである。

バグ

Re:C言語のプログラミングについて

#2

投稿記事 by バグ » 16年前

>>この問題の答えや解答の指針をわかる範囲でいいので教えてください。

この掲示板では課題の丸投げは禁止されております。

どの部分が分からないのですか?
あなたはどの程度のプログラムに関する知識を有していますか?(学校でどんなことを習ったか程度で結構です)
もう少し具体的な質問をしないと、回答のしようがありませんよ(^_^;)

non

Re:C言語のプログラミングについて

#3

投稿記事 by non » 16年前

max{xN + yN +zN | x>0,y>0,z>0, xN + yN + + zN ≦ uN}
この部分がよくわからないのですが、
x,y,zは整数ですか?

たいちう

Re:C言語のプログラミングについて

#4

投稿記事 by たいちう » 16年前

http://www2.realint.com/cgi-bin/tarticl ... intc+33014

石和稲井(2009/04/21 15:42:02)
村泉葉上 2009/04/21(火) 15:44

たて読み?もしかして、あと二箇所にマルチしてあるとか?

通りすがり

Re:C言語のプログラミングについて

#5

投稿記事 by 通りすがり » 16年前

縦読みできることに気づいたたいちうさんもすごい・・w

たいちう

Re:C言語のプログラミングについて

#6

投稿記事 by たいちう » 16年前

http://detail.chiebukuro.yahoo.co.jp/qa ... 1325418778

を読んで、やっと問題の意味が分かった。
茶化すだけでもなんなので、一応解き方の説明を。

まず題意から、1 <= x <= y <= z として良いだろう。
for (xのループ)
	for (yのループ)
		for (zのループ) {
			差を計算
			if (差が最小) {
				差を更新
				x, y, z を覚えておく
			}
		}
x, y, zを表示
(u, n)の下限は問題にあるけど上限が書かれていないので、そこに注意しよう。
私が作るならば、一応64ビットの整数型で作っておいて、
大きな(u, n)については、読み込み時にエラー扱いしようかな。
どの位大きなかは考えてみてね。

> 縦読みできることに気づいたたいちうさんもすごい・・w

ありがとう。あと2箇所見つけた人がいるみたいだけど、
私の予想は4箇所の縦読みで4人分のフルネームだったのですが、
さすがに違いましたね。

たいちう

Re:C言語のプログラミングについて

#7

投稿記事 by たいちう » 16年前

ループの終了条件を説明するのを忘れてました。
それぞれ次の条件で良いかと。
実行効率を考えるならば、もっと工夫すべきだけど。

x^n > u^n
x^n + y^n > u^n
x^n + y^n + z^n > u^n

閉鎖

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