刚开始学习c语言,这几个题我不会,还没有掌握,请友友们解答!
5条回答 默认 最新
- fsy351 2022-12-25 13:55关注
1009 Code
有可能超时,应该还有优化的空间。
#include<stdio.h> int main(){ int T; scanf("%d", &T); for( int t = 0; t < T ;t++ ) { unsigned long long x; unsigned int n; scanf("%lld %d", &x, &n); unsigned long long Gx = x; for( int i=0; i < n; i++) { unsigned long long tmp = Gx; unsigned long long fx = 1; while ( tmp != 0 ) { fx *= tmp % 10; tmp /= 10; } Gx = fx; if( Gx < 10 ) { break; } } printf("%lld\n", Gx); } return 0; }
1018 Code
#include<stdio.h> int main(){ int N; scanf("%d", &N); while ( N-- ) { int a,b; scanf("%d %d", &a, &b); int maxL = a < b? a : b; unsigned long long cnt = 0; for( int t = 0; t < maxL ; t++ ) { cnt += (a - t) * (b - t); } printf("%lld\n", cnt); } return 0; }
1019 code
```c #include<stdio.h> #include<math.h> int main(){ int T; scanf("%d", &T); while ( T-- ) { int Ax,Ay,Bx,By,Cx,Cy; scanf("%d %d %d %d %d %d", &Ax,&Ay,&Bx,&By,&Cx,&Cy); double area = 0; if( Ax == Bx || Ay == By ) { area = abs( (Ax-Cx)*(Ay-Cy) ); } else{ float cosAg = ( (Bx-Ax)*(Cx-Ax) + (By-Ay)*(Cy-Ay) ) / ( sqrt( (Cx-Ax)*(Cx-Ax) + (Cy-Ay)*(Cy-Ay) ) * sqrt( (Bx-Ax)*(Bx-Ax) + (By-Ay)*(By-Ay) ) ); area = abs( ( (Cx-Ax)*(Cx-Ax) + (Cy-Ay)*(Cy-Ay) ) * sqrt( 1 - cosAg* cosAg ) * cosAg ); } printf("%.1f\n", area); } return 0; }
```
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录