C: 编程练习解析

#include <stdio.h>

int main ()
{
	int a;
	scanf("%d",&a);
	int i,j,k;
	int cnt =0;
	
	i = a;
	while( i<=a+3 ){
		j = a;
		while( j<=a+3 ){
			k = a;
			while( k<=a+3 ){
				if ( i!=j ){
					if( i!=k ){
						if( j!=k ){
							cnt++;
							printf("%d%d%d",i,j,k);
							//printf("%d", i*100+j*10+k);
							if ( cnt == 6 ){
								printf("\n");
								cnt = 0;
							}else{
								printf(" ");
							}
						}
					}
				}
				k++;
			}
			j++;
		}
		i++;
	}
	
	return 0;
}

水仙花数(SHD) 

#include <stdio.h>

int main()
{
	int n;
	scanf("%d",&n);
	n=3;
	//所有的三位数
	int first = 1;
	int i =1;
	while( i<n ){
		first *= 10;
		i++;
	}
	//printf("first=%d\n",first);
	//100-999
	i = first;
	while( i<first*10){
		int t = 1;
		int sum = 0;
		do{
			int d = t%10;
			t/=10;
			int p = d;
			int j = 1;
			while ( j<n ){
				p *= d;
				j++;
			}
			sum += p;
		}while(t>0);
		if ( sum == i){
			printf("%d\n",i);
		}
		i++;
	}
	
	return 0;
}