#include <stdio.h> int main() { int i,t,k,n; int a[7]={0}; /*6000000是七位的数值*/ i = t = k = n = 0; scanf("%d",&n); if (n > 6000000) { printf("err:数值超过6000000,请重新输入!"); return -1; } while(n >= 10) { t=1; for(i=0;i<=6;i++) { a[i]=n%10; /*取余,取出当前个位的值*/ n = n/10; /*n重新赋值,这里值得注意的是,除在c中是整除的意思。所以不用-a[i]也可以得到你想要的值*/ } for(k=0;k<=6;k++) { if(a[k] != 0) t *= a[k]; } n = t; } printf("%d", n); return 0; } /************************************************************** Problem: 1846 User: admin Language: C Result: Accepted Time:62 ms Memory:1144 kb ****************************************************************/