package com.interview.flag.g; /** * Created_By: stefanie * Date: 14-11-26 * Time: 下午6:03 */ import com.interview.utils.ConsoleWriter; import java.util.ArrayList; import java.util.List; /** * 数字反转180度,逆向反转,输出长度小于N的所有数字。 * 如96196,数字反转180度是69169,然后逆转是96196,是他自己。 */ public class G7_ReverseNumber { String[] options = new String[]{"1", "8", "69", "96"}; List<String> sols; public List<String> findAll(int len){ sols = new ArrayList<>(); findAll(len, "", ""); return sols; } public void findAll(int len, String prefix, String suffix){ if(len == 0){ sols.add(prefix + suffix); } else if(len == 1){ sols.add(prefix + "1" + suffix); sols.add(prefix + "8" + suffix); } else { findAll(len - 2, prefix + "1", "1" + suffix); findAll(len - 2, prefix + "8", "8" + suffix); findAll(len - 2, prefix + "6", "9" + suffix); findAll(len - 2, prefix + "9", "6" + suffix); } } public static void main(String[] args){ G7_ReverseNumber finder = new G7_ReverseNumber(); List<String> sols = finder.findAll(5); ConsoleWriter.printCollection(sols); } }