zoukankan      html  css  js  c++  java
  • Secrets CodeForces

    Secrets CodeForces - 333A

    题意:这个世界上只有这样面值的硬币:1,3,9,27,81,...有一个商人,某一天遇到了一个顾客,他购买了价值n的商品,发现用自己的硬币无法付给商人刚好n的钱。那个顾客会给商人大于等于n的钱且使得给商人的硬币数量最少。在这个顾客有的硬币可能的各种情况下,请问这个商人最多可能收到多少硬币?

    方法:枚举小数据找规律

    n	答案	小于等于n的最大的3的非负整数幂
    1	1	1
    2	1	1
    3	1	3
    4	2	3
    5	2	3
    6	1	3
    7	3	3
    8	3	3
    9	1	9
    10	4	9
    11	4	9
    12	2	9
    13	5	9
    14	5	9
    15	2	9
    16	6	9
    17	6	9
    18	1	9
    19	7	9
    20	7	9
    21	3	9
    22	8	9
    23	8	9
    24	3	9
    25	9	9
    26	9	9
    27	1	27
     1 #include<cstdio>
     2 int main()
     3 {
     4     long long k=1,p=0,n;
     5     scanf("%I64d",&n);
     6     while(k*3<=n)
     7         k*=3;
     8     if(k==n)
     9     {
    10         printf("1");
    11         return 0;
    12     }
    13     while(n%k!=0)
    14         k/=3;
    15     printf("%I64d",n/(k*3)+1);
    16     return 0;
    17 }

    很奇怪,但是简化一下可以得到更好的

    1 //标程
    2 int n,k=3;
    3 cin>>n;
    4 while(n%k==0)
    5 {
    6     k*=3;
    7 } 
    8 cout<<n/k+1;
  • 相关阅读:
    团队冲刺第二阶段2
    团队冲刺第二阶段1
    第十二周总结
    团队游戏
    三个和尚
    第十一周总结
    第十周总结
    调用摄像头拍照
    怎样从相册中选择照片?
    怎样插入并播放音频?
  • 原文地址:https://www.cnblogs.com/hehe54321/p/cf-333a.html
Copyright © 2011-2022 走看看