A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
>(((1x+2)x+3)x+4)x+5となることはわかりました。
・トップの 1 は、(0x+1) の結果として考えると、
((((0x+1)x+2)x+3)x+4)x+5 となり、
★プログラム的に《考え易く》なります ← ◆◆◆重要。
(参考URLを下敷きに)
#include <stdio.h>
int igKeisu[5] = { 1, 2, 3, 4, 5 };
int Horner( int iVal, int iX, int iKou )
{
if( iKou >= 5 ) return( iVal );
iVal *= iX;
iVal += igKeisu[ iKou ];
printf( "%d [%d]\n", iKou, iVal );
iVal = Horner( iVal, iX, ++iKou ); // 再帰呼出
return( iVal );
}
void main()
{
printf( "%d\n", Horner( 0, 2, 0 ) );
}
注:インデントに全角空白を用いています。
タブに一括変換して下さい。
------------(コッソリト)------------
>突っ込み受け付けます。
★中程の } else { は、あってもなくても結果が同じだから、
「ない方」がいいと思います(冗長)。
・ソースは、
int func( int x, int i )
{
if( i < 3 ) return( x + i );
return( iX * func( x, i - 1 ) + i );
}となろうかと。
☆だめ押し(教室から男女分けて廊下に出すとき)
・「女子から廊下に出て」と言った後、「《女子でない》ものも廊下に出て」
の《女子でない》に相当しますよね?。
--- else のキライな年寄りは、---
「女子から廊下に出てね」と言った後は、教室内は男ばっかだから、
「とっとと廊下に出ろ」なんだけど・・。
(予想外のところに「突っ込み」が入って・・)
>あってるかなぁ・・・。
結果は同じでした。
参考URL:http://www.u-aizu.ac.jp/course/alg1/ex/jp/ex04/
No.2
- 回答日時:
再帰は勘を掴むまで苦労した経験があるので答え書きます。
わかんなかったら状態遷移を書いてみる事です。
あってるかなぁ・・・。(_はインデント)
int func(int x,int i){
__if(i<3){
____return x+i;
__} else {
____return x*func(x,i-1)+i;
__}
}
void main(void){
__int x=~;
__func(x,5);
}
突っ込み受け付けます。参考まで。
No.1
- 回答日時:
> (((1x+2)x+3)x+4)x+5となる
「何か(1)」にxを掛けて5を加えると、「最終結果」
「何か(2)」にxを掛けて4を加えると、「何か(1)」
「何か(3)」にxを掛けて3を加えると、「何か(2)」
「何か(4)」にxを掛けて2を加えると、「何か(3)」
「何か(4)」は1
上記のロジックを再帰呼び出しで表現します。
関数名は、仮にhornerとでもしますか。
引数は2つ、x(=2)とnum(加える数)でよいでしょう。
horner関数の仕様は下記のとおりです。
numが2以上ならば、一つ前の結果(つまり、horner(x, num-1))にxを掛けてnumを加えた値をreturnします。
numが2以上でなければ、初期値の1をreturnします。
そして、horner関数を呼ぶ側で horner(2, 5) の結果を出力すればOKです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 高校 数学III 積分 数学IIIの積分でf(ax+b)の積分公式がありますが b=0の時どのように考えれ 4 2022/09/30 02:06
- 数学 2次方程式「ax²+bx+c=0」は α、βを前者の式の2解と置いた時、 a(x-α)(x-β)=0 2 2022/08/05 19:24
- 物理学 単位変換?次元解析?について質問です 1 2022/04/10 21:31
- 数学 数学Ⅲの関数の極限、関数の連続・不連続に関しての質問でございます。 問題集には、次の関数の〔 〕内の 5 2022/05/19 10:43
- 統計学 統計学の問題です よろしくお願いします 回帰直線 次のデータから集計表を作成し,以下の問いに答えよ。 2 2023/01/31 23:36
- 統計学 統計学の問題です よろしくお願いします 回帰直線 次のデータから集計表を作成し,以下の問いに答えよ。 1 2023/01/31 18:55
- 数学 写真の問題についてですが、赤線部のところを見ると、「f'(x)=1/xは…」と書かれているのですが、 5 2023/02/08 15:49
- 数学 写真の問題についてですが、赤線部のところを見ると、「f'(x)=1/xは…」と書かれているのですが、 3 2023/02/08 15:48
- 数学 乗法公式の問題についてです。 (x-y)(2x+y)??? 2 2022/10/18 19:50
- 物理学 フーリエ級数展開をExcelのFFTでシミュレートする 5 2023/07/03 22:02
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語での引数の省略方法
-
「指定されたキャストは有効で...
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 エラーの原因がわからな...
-
課題でつまってます・・・
-
複数桁10進数の*桁目だけを抽出...
-
数字列を3桁ごとにカンマで区切...
-
配列v2を逆順にしてv1に格納す...
-
double型の値を、一桁ずつint型...
-
C言語の配列をC++のvectorに高...
-
if と配列の組み合わせ
-
【C++】関数ポインタの使い方
-
ラップ関数とはどんなものですか?
-
このプログラミング誰か教えて...
-
Win32APIで作るコンボボックス...
-
卒業研究でよく分からないとこ...
-
C#のコンパイルエラーCS0120に...
-
C言語についてです。
-
c言語の配列を使ってサイコロを...
-
(int *)の意味
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
「指定されたキャストは有効で...
-
C言語 配列と関数の練習問題
-
複数桁10進数の*桁目だけを抽出...
-
(int *)の意味
-
if と配列の組み合わせ
-
ラップ関数とはどんなものですか?
-
卒業研究でよく分からないとこ...
-
【C++】関数ポインタの使い方
-
c言語
-
足して100になるような乱数のア...
-
C言語初心者です、、、お助けく...
-
数字列を3桁ごとにカンマで区切...
-
C言語 エラーの原因がわからな...
-
実数の整数部,小数部の取得
-
課題でつまってます・・・
-
商と剰余を同時に求める(C言語)
-
C言語の配列をC++のvectorに高...
-
std::set<int> で、ある値が何...
おすすめ情報