1<=n<=54。
#include<stdio.h> 
int main(){
	int n;
	while(~scanf("%d",&n)){
		int i,j,k;
		for(i=1;i<=9;++i){  //5 位数 
			for(j=0;j<=9;++j){
				for(k=0;k<=9;++k){
					if(2*i+2*j+k==n)
					  printf("%d%d%d%d%d\n",i,j,k,j,i);
				}
			}
		}
		//6 位数
		for(i=1;i<=9;++i) {
			for(j=0;j<=9;++j){
				for(k=0;k<=9;++k){
					if(2*i+2*j+2*k==n)
					  printf("%d%d%d%d%d%d\n",i,j,k,k,j,i);
				}
			}
		}
	}
	return 0;
}原文:http://blog.csdn.net/qq_18062811/article/details/44354279