开始没有判断len就一直wa,看了苏哥(lzsz1212)的代码,发现多了一个len判断,添上之后就ac了,但是不明白为啥。
后来网上找到的一句话:又是一道坑爹的题啊,可能给的n大于小数点后的数,就得输出0
Problem : 2549 ( 壮志难酬 ) Judge Status : Accepted
RunId : 5923626 Language : C Author : qq1203456195
Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta
#include <stdio.h> #include <string.h> int main() { int a,n,cas,i,len; char ans[1000]; scanf("%d",&cas); while (cas--) { scanf("%d.%s %d",&a,ans,&n); len=strlen(ans); if(n<=len) printf("%c\n",ans[n-1]); else printf("0\n"); } return 0; }
//下边这种解法,符合题目意思,不知道为啥不能AC
#include <stdio.h> int e[7]={0,10,100,1000,10000,100000,1000000}; int main() { int cas,n; double l; scanf("%d",&cas); while (cas--) { scanf("%lf%d",&l,&n); printf("%d\n",(int)(l*e[n])%10); } return 0; }