双十一特惠 (简单版)
在双 11 时,心慧精品店有个特别的折价活动如下:
首先,我们定义一个正整数为"好的"当且仅当此数仅由数字
1
构成,举例来说1
,11
,111
,11111
都是「好的」,但10
、123
、321
都是「不好的」。接着,若一个商品原价为 xx,若顾客能把 xx 表示为 kk 个「好的」数字,那么此顾客就能用 kk 元买下它。
小月在心慧精品店里看上了一件原价为 vv 的商品,但小月的预算只有 99 元,请问小月能否在预算内买下此件商品,若可以请输出小月最少需要花多少钱才能买下此商品,否则输出 Impossible
。
#include<bits/stdc++.h> using namespace std; long long s[8]={11,111,1111,11111,111111,1111111,11111111,111111111}; int main() { int t,i; long long x; long long res; scanf("%d",&t); while(t--){ scanf("%lld",&x); res=0; if(x<=9) printf("%d\n",x); else if(x==10) printf("Impossible\n"); else { for(i=7;i>=0;i--) { while(x>=s[i]) { x-=s[i]; res++; } } res+=x; if(res>9) printf("Impossible\n"); else printf("%lld\n",res); } } return 0; }