장안대학 제3 회 ACM - ICPC 프로 그래 밍 경연 대회 (싱크로 나 이 즈 드 게임) L - Big Boss

시간 제한: C / C + + 1 초, 기타 언어 2 초
공간 제한: C / C + + 131072 K, 기타 언어 262144 K
64bit IO Format: %lld
제목 설명
Many years later,
Rainbow Island is in the mercy of big boss
qiami. Big boss
qiami is fond of number 9 because each side of the magic cube is made up of 9 small pieces and he changes the face value of circulating currency to 9
0,9
1,9
2,9
3,9

Yuan.
One day programmer
Uucloud went to a shop to buy Cat food worth
n Yuan. The shopkeeper
NoMoreWords and
Uucloud are good friends so he will give
Uucloud his change.
Uucloud wants to know how many bills do they need in their trade at least.
For example, if
Uucloud wants to buy cat food of 8
Yuan, he will pay a 9
Yuan bill and
NoMoreWords will give
Uucloud 1
Yuan bill as change. Two paper money are used in this trade.
입력 설명:
The first line contains an integer number T, the number of test cases.
Next T lines contains a number n(1 ≤ n ≤ 109)。

출력 설명:
For each test case print the number of bills they need at least.

/ / 우 객 망 의 문 제 는 독이 있다.고생해 서 써 봤 는데 없어 졌어 요.
이것 은 간단 한 문제 이지 만 출석 체크 를 하지 않 고 보충 하 는 동시에 자신의 코드 능력 도 향상 시 켰 다.
우 리 는 우선 이 문 제 를 보지 않 고, 우선 이런 문 제 를 생각해 보 자.
너 는 지금 액면가 가 1, 10, 100 원 인 데, 어떻게 129 원 을 모 아서 가장 적은 돈 으로 장 수 를 쓸 수 있 니?
그러면 1 + 2 + 9 죠.
그러면 이 문 제 는 1, 10, 100 에서 1, 9, 81, 728, 6561 로 바 뀌 었 다.
근 데 이 문 제 는 안 끝났어 요.
이 말 조심 하 세 요.
 The shopkeeper NoMoreWords andUucloud are good friends so he will give Uucloud his change.
거스름돈 서 비 스 를 제공 할 수 있다 는 얘 기다.
그럼 129 원 이면 1 + 3 + 1 이 됩 니 다.
/ / 100 원 짜 리 한 장, 10 원 짜 리 3 장, 그리고 0 원 짜 리 1 장 을 찾 으 면 ok
이것 괜찮아요?
/ / 코드 는 다음 과 같 습 니 다
#include
using namespace std;
long long int a[10];
int main()
{
   int t;
   scanf("%d",&t);
   while(t--)
   {
       long long int n;
       scanf("%lld",&n);
       int bit=1;
       while(bit<=4)
       {
           a[bit]=n%9;
           n/=9;
           bit++;
       }
       a[5]=n;
       for(int i=1;i<=4;i++)
       {
           if(a[i]>=5)
           {
               a[i]=9-a[i];
               a[i+1]++;
           }
       }
       long long int sum=0;
       for(int i=1;i<=5;i++)
       {
           sum=sum+a[i];
       }
       printf("%lld
",sum); } return 0; }

좋은 웹페이지 즐겨찾기