import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
long A;
long[] a=new long[6];
int[] b={1,5,10,50,100,500};
for(int i=0;i<6;i++){
a[i]=in.nextLong();
if(a[i]<0||a[i]>1000000000){
return;
}
}
A=in.nextLong();
if(A<0||A>1000000000){
return;
}
int count=0;
int temp=0;
for(int i=5;i>=0;i--){
if(A>=b[i]){
temp=(int) A/b[i];
if(a[i]<temp){
temp=(int) a[i];
}
count+=temp;
A=A-b[i]*temp;
}
}
if(A!=0){
System.out.println("NOWAY");
}else{
System.out.println(count);
}
}
}
唯一全对的一道题
# include <stdio.h>
# include <iostream>
# include <algorithm>
using namespace std;
int v[6]={1,5,10,50,100,500};
void solve(int A ,int *num)
{
int count = 0;
for(int i=5;i>=0;i--)
{
int t=min(A/v[i],num[i]);
A-=t*v[i];
count+=t;
}
if(A == 0)
cout<<count<<endl;
else{
cout<<"NOWAY";
}
}
int main()
{
int num[6];
int A;
while(true)
{
for(int i=0;i<6;i++)
cin>>num[i];
cin>>A;
solve(A,num);
}
return 0;
}
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] c = new int[6]; for(int i=0; i<6; i++) { c[i] = sc.nextInt(); } int A = sc.nextInt(); sc.close(); int[] type = {1, 5, 10, 50, 100, 500}; int count = 0; for(int i=5; i>=0; i--) { while(c[i] != 0 && A/type[i] != 0) { A -= type[i]; c[i]--; count++; } } if(A != 0) { System.out.println("NOWAY"); } else { System.out.println(count); } } }
唉,就做对这个,第二题都没做,第三题在本地测试了不少用例,都是对的,但是只能通过20%