【C系列3.8】Lucky Sum of Digits
Time Limit: 10 s Memory Limit: 32 MB
Submission:513 AC:156 Score:0
SubmitCodes
Description
在数字界有一类被叫做幸运数的数,其实幸运数的组成很简单。如果一个数所有位数上的数字都是4或7的话就叫做幸运数。比如444444, 44747是幸运数而57774747就不是。
现在mwy遇到了一个小问题,他只知道一个幸运数所有位数上数字之和,他想知道这个数最小会是多少,聪明如你,快来帮帮我们的mwy吧。
Input
输入一个数n(n<=300)。
Output
如果可以找到这样的幸运数,就输出这个幸运数,否则就输出-1。
#include<stdio.h>
int main(){
int n,i,j,mini,minj,flag;
mini=0;minj=0;
scanf("%d",&n);
flag=0;
for(i=0;i<=n/4.0;i++){
for(j=0;j<=n/7.0;j++){
if(n==i*4+j*7){
mini=i;
minj=j;
flag=1;
goto out;
}else{
flag=0;
}
}
}
out:
if(flag==1){
for(i=1;i<=mini;i++){
printf("4");
}
for(j=1;j<=minj;j++){
printf("7");
}
printf("\n");
}else{
printf("-1");
}
}