ZZU 省赛第二题 最强战斗力

View Code
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 
 5 int main()
 6 {
 7    int i, j, ncases,n,m,k, T;
 8    int a[200], b[350], c;
 9    
10    scanf("%d",&ncases);
11   while( ncases-- )
12   {
13     scanf("%d",&T);
14     memset(a,0,sizeof(a));
15     for(i=0; i<350; i++)
16       b[i] = 3; 
17       a[0] = 1;
18     if(T%3 == 0)
19     {
20        n = T/3;       
21       for(i=0; i<n; i++)
22       {
23          c = 0;
24         for(j=0; j<200; j++)    
25         {
26            m = a[j]*b[i] + c;
27            a[j] = m%10;
28            c = m/10;  
29         }  
30       }  
31     }
32     else if(T%3 == 1)
33     {
34       n = T/3 - 1;  
35       for(i=0; i<n; i++)
36       {
37            c = 0;
38          for(j=0; j<200; j++)
39          {
40              m = a[j]*b[i] + c;
41              a[j] = m%10;         
42              c = m/10;
43          }  
44       }  
45       for(i=0; i<2; i++)
46       {
47         c = 0;
48         for(j=0; j<200; j++)    
49         {
50            m = a[j]*2 + c;
51            a[j] = m%10;       
52            c = m/10;      
53         }
54       }
55     }             
56     else if(T%3 == 2)
57     {
58        n = T/3; 
59       for(i=0; i<n; i++)
60       {
61                c = 0;
62          for(j=0; j<200; j++)
63          {          
64             m = a[j]*3 + c;
65             a[j] = m%10;
66             c = m/10;
67          }
68       }
69       c = 0;
70       for(j=0; j<200; j++)
71       {
72          m = a[j]*2 + c;
73          a[j] = m%10;
74          c = m/10;
75       }       
76     } 
77     for(k=199; k>=0; k--)
78     {
79       if(a[k] != 0)
80         break;
81    } 
82    for(i=k; i>=0; i--)
83    { 
84      printf("%d",a[i]); 
85    }
86    printf("\n");
87  }
88   return 0;
89 }

 

整数划分问题,就是求竟可能多的3和2

转载于:https://www.cnblogs.com/cn19901203/archive/2012/05/24/2516607.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值