數位所方老師的期未考題
1.求(1-1)^2+(1-2)^2+...(10-9)^2+(10-10)^2
int main(void)
{
int arr[10][10],i,j,count=0;
for(i=1;i<=10;i++)
for(j=1;j<=10;j++)
{
arr[i-1][j-1]=i*i+j*j-2*i*j;
}
for(i=0;i<=9;i++)
for(j=0;j<=9;j++)
count=count+arr[i][j];
printf("count is %d\n",count);
}
如果程式碼沒記錯,答案跑出來1650, 我不會算,真不知這麼鳥的題目是在幹嘛
2.變數的生命週期
int func(int a,int b);
int main(void)
{
int x=5;
int y=10;
int z;
z=func(x,y);
printf("x=%d,y=%d,z=%d\n",x,y,z);
}
int func(int a,int b)
{
a=a+b;
b=a+b;
return b;
}
跑出來,x,y值不會因為帶入函數而變化(我認為是要考這觀念)
x=5,y=10,z=25
3.遞迴
int Func(int x);
int main(void)
{
int x=8;
printf("ans is %d\n",Func(x));
}
int Func(int x)
{
if (x==1)
return 1;
else if (x==2)
return 3;
else
return 2*Func(x-1)-Func(x-2);
}
從Func(3)算起,得到規則1,3,5,7,9,...
ans is 15
4.一數列中求第n個數
int main(void)
{
int fn,fn_1=1,fn_2=1,n=6,i;
for(i=1;i<=n-2;i++)
{
fn=3*fn_1+4*fn_2;
fn_2=fn_1;
fn_1=fn;
}
printf("%d\n",fn);
}
答案:409
5. continue & break,
int main(void)
{
int i,j,count=0;
for(i=1;i<=10;++i)
{
for(j=1;j<=10;++j)
{
if(j%3==0)
continue;
if(i%5==0)
break;
++count;
}
}
printf("count is %d\n",count);
}
這個我己經不太確定是不是長這樣了,不過我寫的答案跟上面跑出來也不一樣 ><
留言列表