挺簡單的,,那麼就算的快一點
package blut.Algorithms.mianshi;
/**
* 一段很長的道路,一個油漆工刷路面,他有兩種工具,工具1每次可以刷1米,工具2每次可以刷3米,1)問當道路長度是n米時,使用工具1和工具2配合使用刷完全部道路,共有多少種方式?
2)請給出解決方案(僞代碼),並附上完整測試方案(白盒單元測試)。
例:
當n=1,1米長道路,應該有1種方式(用工具1刷1次)
當n=3,3米長道路,應該有2種方式(方式1 用工具1刷3次,方式2 用工具2刷1次)
* @author blut
*
*/
public class Demo1 {
public void func(int n){
int i=0;
int j=0;
while(i>0){
j=n%3;
i=(n-j)/3;
}
}
public static void main(String[] args){
int n=10;
int[] count4san=new int[n];
int i=0;//i指 使用工具2的次數
int j=0;
while(i<=n/3){
//31
j=n-3*i;//i 指使用工具1的次數
if(j>=0){
count4san[i]=j;
}
i++;
}
for(i=0;i<count4san.length;i++){
if(count4san[i] != 0){
System.out.println("使用工具1 :"+count4san[i]+" 使用工具2 : "+i);
}
}
}
}