###質問したい事
整数n(1を超え10000未満)を入力した時、その整数桁未満の3のべき乗でもっとも大きいものを出力するようにするにはどう書けば良いか教えてください。
例
入力 15
出力 68630377364883
入力 26
出力 6461081889226673298932241
C
1#include <stdio.h> 2 3#define N 10000 4 5... 6 7int main(void) 8{ 9
https://teratail.com/help/avoid-asking
> コードをください・デバッグしてください等の丸投げの質問
>
> 何かを作りたいのでコードを書いてほしい、学校の課題を解いてほしい等の質問は、具体的にプログラミングで困っている質問ではないと考え、推奨していません。
> 問題や質問は実際に調査や作業に取り組み、具体的なところで生まれると考えるためです。
> まずは実際に作業に取り組み、つまづいたところで投稿をしてみてください。
https://teratail.com/questions/256617
上の3の冪乗版ということですか?
raccyさんご質問ありがとうございます。
その質問はn以下のようですが今回のはnの桁数未満です。
例では15桁未満では9となっていますが、15桁未満でもっとも大きい3の冪乗は3の29乗の68630377364883になると思うのですが、問題文または例のどちらかが間違ってませんか?
15は2桁なので2桁未満(=1桁)で最大の3のべき乗は9です。
つまりは、15は「9以下」、126は「99以下」の最大の3のべき乗を計算して出力する、ということであってますか?それなら、入力されたnに対して、nより1桁すくない「9...9以下」がわかれば、2のべき乗と同じ方法で解けませんか?
あと、1~9の場合は、1桁未満、つまり0桁ですが、3の0乗でも1なので、解なしになると思われるのですが、その場合は、どのような出力になるのですか?
勘違いしていました。申し訳ございません。
正しくは 15は15桁という意味でそれの桁未満(=14桁)の最大なので出力は「68630377364883」です。
もう一つの例も同様の意味です。
質問の例の値を修正させて頂きました。
26のときは6461081889226673298932241ではないのですか?引用元も何も書いていないので、この問題文はあなたが考えたのですよね?質問や例が正確ではないと、何が正解なのかを判断できません。最大で9999桁の数字を出力する問題と言うことであってますか?
失礼しました。26の時の最大は6461081889226673298932241でした。
nの範囲は1<n<10000で間違いありません。ただ9999桁の出力では無くn未満の為出力最大桁数は9998桁になります。