#include <math.h> #include <stdio.h> #include <stdlib.h> char c[10][6] = { "","", "ABC", "DEF", "GHI", "JKL", "MNO", "PQRS", "TUV", "WXYZ" }; int Nc[10] = {0, 0, 3, 3, 3, 3, 3, 4, 3, 4}; int tel[12] = {2, 2, 2, 2, 2}; int TelLen = 5; int nc[10] = {0,}; void Forx3() { for(nc[0] = 0; nc[0] < Nc[tel[0]]; nc[0] ++) for(nc[1] = 0; nc[1] < Nc[tel[1]]; nc[1] ++) for(nc[2] = 0; nc[2] < Nc[tel[2]]; nc[2] ++) { for(int i = 0; i < 3; i ++) { printf("%c", c[tel[i]][nc[i]]); } printf("/n"); } } void Whilex1() { int i = 0; while(i >= 0) { for(i = 0; i < TelLen; i ++) { printf("%c", c[tel[i]][nc[i]]); } printf("/n"); i = TelLen - 1; while(i >= 0) { if(nc[i] < Nc[tel[i]] - 1) { nc[i] ++; break; } nc[i] = 0; i --; } if(i < 0) break; } } void Recursive(int l) { if(l == TelLen) { for(int i = 0; i < TelLen; i ++) { printf("%c", c[tel[i]][nc[i]]); } printf("/n"); return; } for(nc[l] = 0; nc[l] < Nc[tel[l]]; nc[l] ++) { Recursive(l + 1); } } void main() { Recursive(0); } from 编程之美。做备忘