Ich benutze 64-Bit-Betriebssystem, dann auch nicht in der Lage, 46. Fibonacci-Nummer richtig zu drucken, die weniger als 4 Milliarden ist.Warum kann ich die 47. Fibonacci-Nummer nicht korrekt drucken?
#include<cs50.h>
#include<stdio.h>
int main(void)
{
unsigned int n=50;
int array[n];
array[0]=0;
array[1]=1;
printf("%i\n",array[0]);
printf("%i\n",array[1]);
for(int i=2;i<n;i++)
{
array[i]=array[i-1]+array[i-2];
printf("%i\n",array[i]);
}
' int Array [n]; printf ("% i \ n", Array [i]); '->' vorzeichenloses int-Array [n]; printf ("% u \ n", Array [i]); ' – kaylum
@kaylum unsigned int geht immer noch aus dem Bereich am 49. Element. –
@RishikeshRaje Ja, ich war buchstäblich, weil die Frage lautet: "Warum kann ich 47. nicht drucken?". Wenn Sie diese Änderung vornehmen, wird der 47. korrekt gedruckt. Und das OP erwähnte speziell "4 Milliarden", was andeutet, dass OP über die Grenzen einer 32-Bit-Zahl informiert ist und somit erwarten könnte, den Überlauf zu sehen, sobald er diese Zahl überschritten hat, aber vorher nicht. – kaylum