C语言编程题目 数列生成规则如下: 第一项的值为a,第二项的值为b, (0 ≤ a,b ≤ 9) 请注意优化,不要超时
答案:1 悬赏:0 手机版
解决时间 2021-11-25 15:36
- 提问者网友:我一贱你就笑
- 2021-11-25 02:51
C语言编程题目 数列生成规则如下: 第一项的值为a,第二项的值为b, (0 ≤ a,b ≤ 9) 请注意优化,不要超时
最佳答案
- 五星知识达人网友:北方的南先生
- 2021-11-25 04:20
#include
void main()
{
int i,j,k,l,m,a,b,q,n,y[1000];
scanf("%d",&n);
for ( i=0;i { scanf("%d%d%d",&a,&b,&q);
for ( j=0;j j=2; l=0;
while ( y[l]==1 ) { printf("%d\n",a); l++; }
while ( y[l]==2 ) { printf("%d\n",b); l++; }
while ( l { k=a*b;
if ( k>=10 )
{ a=m=k/10; j++; if ( j==y[l] ) { printf("%d\n",m); l++; }
b=m=k%10;
}
else { a=b; b=m=k; }
j++; if ( j==y[l] ) { printf("%d\n",m); l++; }
}
}
}追问可以优化吗?超时啦!谢谢回答追答我觉着没有什么地方可以优化了,不知道什么方面导致超时了追问应该是循环里面吧!!!你能先写一个函数筛选,然后再按题目要求写出来,或者用循环节来写吗????或者你能想想把循环里面的内容优化一下,那个算100000000到1000000000之间的数太慢了,,谢谢
void main()
{
int i,j,k,l,m,a,b,q,n,y[1000];
scanf("%d",&n);
for ( i=0;i
for ( j=0;j j=2; l=0;
while ( y[l]==1 ) { printf("%d\n",a); l++; }
while ( y[l]==2 ) { printf("%d\n",b); l++; }
while ( l { k=a*b;
if ( k>=10 )
{ a=m=k/10; j++; if ( j==y[l] ) { printf("%d\n",m); l++; }
b=m=k%10;
}
else { a=b; b=m=k; }
j++; if ( j==y[l] ) { printf("%d\n",m); l++; }
}
}
}追问可以优化吗?超时啦!谢谢回答追答我觉着没有什么地方可以优化了,不知道什么方面导致超时了追问应该是循环里面吧!!!你能先写一个函数筛选,然后再按题目要求写出来,或者用循环节来写吗????或者你能想想把循环里面的内容优化一下,那个算100000000到1000000000之间的数太慢了,,谢谢
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯