Cの150桁の数字の中で10桁の数字の中で最も大きい商品を見つける必要がありますが、何が間違っているのか分かりません。連続数字の最大積
私はnr[]
を使用して10個の連続する数字を格納し、n
を使用して最大の10個の数字の倍数を格納しました。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int array[150]={7,3,1,6,7,1,7,6,5,3,1,3,3,0,6,2,4,9,1,9,2,2,5,1,1,9,6,7,4,4,2,6,5,7,4,7,4,2,3,5,5,3,4,9,1,9,4,9,3,4,9,6,9,8,3,5,2,0,3,1,2,7,7,4,5,0,6,3,2,6,2,3,9,5,7,8,3,1,8,0,1,6,9,8,4,8,0,1,8,6,9,4,7,8,8,5,1,8,4,3,8,5,8,6,1,5,6,0,7,8,9,1,1,2,9,4,9,4,9,5,4,5,9,5,0,1,7,3,7,9,5,8,3,3,1,9,5,2,8,5,3,2,0,8,8,0,5,5,1,1};
int i,l,j,nr[10];
long int n=1,k;
for(i=0;i<140;i++){
k=1;
for(j=i;j<i+10;j++){
k=k*array[j];
}
if(n<k){
for(l=0;l<10;l++){
nr[l]=array[i+l];
}
n=k;
}
for(i=0;i<=9;i++){
printf("%d ",nr[i]);
}
return 0;
}
}
作成しますか?実行され、期待どおりに動作しません(もしそうなら、どんな方法で)? – Steve
ああ、おそらく問題ではなく、質問自体を – Steve
に移動してください。各反復でスクラッチから製品を計算する必要はありません。 PがX [n] ... X [n + 9]の積である場合、X [n + 1] ... X [n + 10]の積はP/X [n] * X [n + ]。また、0を指定すると、それを完全にスキップすることができます。 –