HDU 2410 Barbara Bennett's Wild Numbers (想法题)

题目链接:HDU 2410 Barbara Bennett's Wild Numbers

题意:给出两串数w,s(长度同样),第一串中有“?”,问“?”取的值使w相应的数大于s相应的数 的最慷慨案数。

思路:W,S一一相应比較;

遇到第一个’?‘之前比較情况

1.w[i]<s[i] 方案数0种;break;

2.w[i]>s[i] break。

之后有n个‘’?‘ 方案数就有10的n次方种。

3.w[i]=s[i] 继续比較。反复1.2两个条件。

遇到’?‘

1.能取数个数是 ’9‘-x[i]。

之后10的n次方。

2.取等于x[i] ,继续比較。


AC代码:


#include<stdio.h>
#include<string.h>
char w[20],x[20];
int get(int i,int temp,int len)
{
    int j;
    for(j=i+1; j<len; j++)
    {
        if(w[j]=='?

') temp*=10; } return temp; } int main() { int len,i,j; while(scanf("%s",w)!=EOF) { if(strcmp(w,"#")==0) break; scanf("%s",x); len=strlen(w); int ans=0; for(i=0; i<len; i++) { if(w[i]=='?') ans+=get(i,'9'-x[i],len); else { if(w[i]==x[i]) continue; if(w[i]>x[i]) ans+=get(i,1,len); break; } } printf("%d\n",ans); } return 0; } /* 12?

4? 12354 12?5?

12354 */



posted on 2017-04-30 14:15  wgwyanfs  阅读(120)  评论(0编辑  收藏  举报

导航