70,024
社区成员




default :
//printf("%d",k);
printf("%d",result[i]);
break;
#include <cstdlib>
#include <iostream>
using namespace std;
const int mkind[] = {1, 2, 5, 10, 20, 50, 100};
#define arrlen sizeof(mkind)/sizeof(int)
int getsuitablepos(int im){
int i, ir;
for(i =0, ir =0; ((mkind[i] > im) ? i = arrlen: ir = i), i< arrlen; i++);
return ((ir >= arrlen) ? arrlen -1: ir);
}
bool findtype(int im)
{
int i, ip = getsuitablepos(im);
if (im == mkind[ip])
{
cout<< "Possible"<< endl << im << ", ";
return true;
}
if(im < mkind[ip])
return false;
for(i = ip; i + 1; i--)
{
if(findtype(im - mkind[i]))
{
cout<< mkind[i] << ", ";
return true;
}
}
return false;
}
int main(int argc, char *argv[])
{
int imoney = 341; //输入钱数
if(!findtype(imoney))
cout<< "Impossible"<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
#include <cstdlib>
#include <iostream>
using namespace std;
const int mkind[] = {1, 2, 5, 10, 20, 50, 100};
int getsuitablepos(int im){
int i, ir;
for(i =0, ir =0; ((mkind[i] > im) ? i = sizeof(mkind): ir = i), i< sizeof(mkind); i++);
return ir;
}
bool findtype(int im)
{
int i, ip = getsuitablepos(im);
if (im == mkind[ip])
{
cout<< "Possible"<< endl << im << ", ";
return true;
}
if(im < mkind[ip])
return false;
for(i = ip; i + 1; i--)
{
if(findtype(im - mkind[i]))
{
cout<< mkind[i] << ", ";
return true;
}
}
return false;
}
int main(int argc, char *argv[])
{
int imoney = 74; //输入钱数
if(!findtype(imoney))
cout<< "Impossible"<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
#include "stdio.h"
void order(int *a,int m)//降序排列
{
int i,j,t;
for(i=0;i<m-1;i++)
for(j=i;j<m;j++)
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
int main()
{
int i,k,count=0;
int money,type_num;
int type[10];
int result[300];
scanf("%d",&money);
while(money!=0)
{
scanf("%d",&type_num); // 输入钱的种类数
for(i=0;i<type_num;i++) // 输入钱的种类
scanf("%d",&type[i]);
order(type,type_num); //种类排序
k=0;
for(i=0;i<type_num;i++) //计算最少用多少张
while(money/type[i]!=0)
{
money-=type[i];
k++;
}
result[count]=k; //记录数据
count++;
scanf("%d",&money); // 进入下次循环,录入被分的钱
}
for(i=0;i<count;i++) // 输出结果
{
switch(result[i])
{
case 0 :
printf("Impossible");
break;
default :
printf("%d",result[i]);
break;
}
printf("\n");
}
}