1 条题解
-
0
C :
#include<stdio.h> int main() { int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); if(n<150) printf("%d\n",n); else if(n<=200||n>=300) printf("%d\n",n%50); else printf("%d\n",n-200); } return 0; }
C++ :
#include<stdio.h> int main() { int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); if(n<150) printf("%d\n",n); else if(n<=200||n>=300) printf("%d\n",n%50); else printf("%d\n",n-200); } return 0; }
Pascal :
program p1023; var a,b,c:longint; min,i,j,k,t,m,n,s:longint; begin readln(t); a:=150; b:=200; c:=350; for m:=1 to t do begin min:=maxlongint; readln(n); for i:=0 to n div a do for j:=0 to n div b do for k:=0 to n div c do begin s:=n-i*a-j*b-c*k; if (s<min) and (s>=0) then min:=n-i*a-j*b-c*k; end; writeln(min); end; end.
Java :
public class Main { public static void main(String[] args) { java.util.Scanner input = new java.util.Scanner(System.in) ; int n = input.nextInt(); for(int l =0;l <n;l++){ int N = input.nextInt(); int a = N/350; int b = N/200; int c = N/150; int max = 0; for(int i=0;i<=a;i++){ for(int j=0;j<=b;j++){ for(int k = 0;k<=c;k++){ if(i*350+j*200+k*150>max&&i*350+j*200+k*150<=N) max=i*350+j*200+k*150; } } } System.out.println(N-max); } } }
Python :
import itertools,sys def check(m,data): result = [] for i in range(1,len(data)+1): for j in itertools.combinations(data,i): n,cash = divmod(m,sum(j)) result.append(cash) return min(result) i = 1 data = [150,200] for line in sys.stdin: a = line.split() if i!=1: if int(a[0])<300: print check(int(a[0]),data) else: print int(a[0])%50 i += 1
- 1
信息
- ID
- 6217
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者