本帖最后由 jackz007 于 2020-12-28 11:23 编辑 #include <stdio.h>
int main(void)
{
int c , d[500][6] , p[5] = {100 , 20 , 10 , 5 , 1} , i , j , k , s , t ;
scanf("%d" , & t) ;
for(i = 0 ; i < t ; i ++) scanf("%d" , & d[i][0]) ;
for(k = 0 ; k < t ; k ++) {
for(i = 1 ; i < 6 ; i ++) d[k][i] = 0 ;
for(s = 0 , i = 1 ; i < 6 ; i ++) {
for(; s + p[i - 1] <= d[k][0] ;) {
s += p[i - 1] ;
d[k][i] ++ ;
}
}
}
for(k = 0 ; k < t ; k ++) {
printf("%d = " , d[k][0]) ;
for(c = 0 , i = 1 ; i < 6 ; i ++) {
if(d[k][0] < 1000) {
for(j = 0 ; j < d[k][i] ; j ++) {
if(c) printf(" + ") ;
printf("%d" , p[i - 1]) ;
c ++ ;
}
} else {
if(d[k][i]) {
if(c) printf(" + ") ;
printf("%d * %d" , p[i - 1] , d[k][i]) ;
c ++ ;
}
}
}
printf("\n") ;
}
}
编译、运行实况D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
5
99
101
137
188
199
99 = 20 + 20 + 20 + 20 + 10 + 5 + 1 + 1 + 1 + 1
101 = 100 + 1
137 = 100 + 20 + 10 + 5 + 1 + 1
188 = 100 + 20 + 20 + 20 + 20 + 5 + 1 + 1 + 1
199 = 100 + 20 + 20 + 20 + 20 + 10 + 5 + 1 + 1 + 1 + 1
D:\00.Excise\C>
|