之前做过一道类似的题目,有一道。。。这题其实还好,不是那么阴。。。
至少题目里面有打(!)提醒。。。
#include <stdio.h> #include <string.h> char Num[10]; int factors[]={9,3,7}; void process() { int missPos; //保存丢失了哪一位 int i; int sum=0; int numInt; for(i=strlen(Num)-1;i>=0;i--) { if(Num[i]=='?') missPos=i; else { numInt=Num[i]-48; sum+=numInt*(factors[(strlen(Num)-1-i)%3]); } } //printf("sum == %d\n",sum); for(i=0;i<10;i++) if((sum+i*(factors[(strlen(Num)-1-missPos)%3]))%10==0) { Num[missPos]=i+48; break; } //sum+=i*(factors[(strlen(Num)-1-missPos)%3]); //printf("sum == %d\n",sum); printf("%s\n\n",Num); } int main() { int n; scanf("%d",&n); int count=n; int i; while(count--) { scanf("%s",Num); printf("Scenario #%d:\n",n-count); process(); } return 0; }