#include<_stdio.h>
#include<_stdlib.h>
void input( long long int *f, int n )
{
int i;
for( i = 1; i <= n ; i++ ){
printf( "%d番目の数を入力。\n", i );
scanf( "%I64d", &f[i] );
}
}
int calculation( long long int *f, long long int *a, int n )
{
int i = 1;
int j;
bool flag = false;
// 計算
a[1] = f[1];
while( i < 10 ){
for( j = 2; j <= n; j++ ){
a[j] = f[j] a[j1] * i;
}
if( a[n] == 0I64 ){
flag = true;
break;
}
else{
i*= 1;
if( 0 < i ){
i++;
}
}
}
// 該当する値が無ければ全て0に
if( flag == false ){
for( j = 1; j <= n; j++ ){
a[j] = 0;
}
i = 0;
}
return i;
}
void output( long long int *f, long long int *a, int n, int s ){
int i;
for( i = 1; i <= n; i++ ){
printf( " %10lld", f[i] );
}
printf( " | %10lld\n", s );
printf( " " );
for( i = 2; i <= n; i++ ){
printf( " %10lld", a[i1] * s );
}
printf( " |\n" );
for( i = 0; i <= n; i++ ){
printf( "" );
}
printf( "\n" );
for( i = 1; i < n; i++ ){
printf( " %10lld", a[i] );
}
printf( " | %10lld\n", a[n] );
}
int main()
{
int n;
printf( "項数を入力。\n" );
scanf( "%d", &n );
// 要素数がnの配列を作る
long long int *f = ( long long int * ) malloc ( sizeof ( long long int ) * n + 1 );
long long int *a = ( long long int * ) malloc ( sizeof ( long long int ) * n + 1 );
// データ入力
input( f, n );
// 組み立て除法
int s; // 商を受け取る変数
s = calculation( f, a, n );
// 出力
output( f, a, n, s );
return 0;
}
実行結果
まぁlong long int型は今のところ使う必要は無いんだけどね。
とはいえ、後々使うことになってたかもしれないので今日はいいことを知ったよ。
こんな原因は絶対気付かなかっただろうし。
因みにこのプログラムを作った目的は、
トリックスターのTMレベルの必要経験値の因数分解です。
TMレベル229〜の式は、
5n ( n^3 514n^2 + 76,859n 1,951,346 ) / 12 31,061,150
こんなんですから(´д⊂
調べる方法あるのかもしれませんけどまぁ計算めんdそうだしな。
こういう計算は電子計算機に任せるのが一番だ。