Z国的货币系统包含面值1元、4元、16元、64元共计4种硬币,以及面值1024元的纸币。现在小Y使用1024元的纸币购买了一件价值为N(0<N≤1024)N (0 < N le 1024)N(0<N≤1024)的商品,请问最少他会收到多少硬币?
w=int(input()) n=1024-w count=0 if int(n/64)>0: count=count+int(n/64) n=n%64 if int(n/16)>0: count=count+int(n/16) n=n%16 if int(n/4)>0: count=count+int(n/4) n=n%4 count=count+n print(count)
小明是一名算法工程师,同时也是一名铲屎官。某天,他突发奇想,想从猫咪的视频里挖掘一些猫咪的运动信息。为了提取运动信息,他需要从视频的每一帧提取“猫咪特征”。一个猫咪特征是一个两维的vector<x, y>。如果x_1=x_2 and y_1=y_2,那么这俩是同一个特征。
因此,如果喵咪特征连续一致,可以认为喵咪在运动。也就是说,如果特征<a, b>在持续帧里出现,那么它将构成特征运动。比如,特征<a, b>在第2/3/4/7/8帧出现,那么该特征将形成两个特征运动2-3-4 和7-8。
现在,给定每一帧的特征,特征的数量可能不一样。小明期望能找到最长的特征运动。
n=input() m=int(input()) dict1={} max1={} max2={} for j in range(0,m): xy=[] temp=[] v1=[int(x) for x in input().strip().split()] for i in range(0,v1[0]): x1=str(v1[2*i+1]) y1=str(v1[2*i+2]) x1y1=x1+"_"+y1 if x1y1 in max1.keys():#如果已经保存该特征值 max1[x1y1]=max1.get(x1y1)+1 else: max1[x1y1]=1 if x1y1 not in max2: max2[x1y1]=1 xy.append(x1y1) if j!=0: for k in max1.keys(): if k not in xy: if max1.get(k)>max2.get(k): max2[k]=max1.get(k) temp.append(k) for k in temp: max1.pop(k) for k in max1.keys(): if max1.get(k)>max2.get(k): max2[k]=max1.get(k) max3=[] for c in max2.keys(): max3.append(max2.get(c)) #print(c,",",max2.get(c)) print(max(max3))
为给定的二维平面整数点集。定义 P 中某点x,如果x满足 P 中任意点都不在 x 的右上方区域内(横纵坐标都大于x),则称其为“最大的”。求出所有“最大的”点的集合。(所有点的横坐标和纵坐标都不重复, 坐标轴范围在[0, 1e9) 内)
如下图:实心点为满足条件的点的集合。请实现代码找到集合 P 中的所有 ”最大“ 点的集合并输出。
n=int(input()) point={} max1={} for i in range(0,n): v1=[int(x) for x in input().split()] point[v1[0]]=v1[1] for k in point.keys(): iss=True for h in point.keys(): if h>k and point.get(h)>point.get(k): iss=False if iss==True: max1[k]=point.get(k) keyy=[] for d in max1.keys(): keyy.append(d) keyy=sorted(keyy) for dd in keyy: print(dd,max1.get(dd))
给定一个数组序列, 需要求选出一个区间, 使得该区间是所有区间中经过如下计算的值最大的一个:
区间中的最小数 * 区间所有数的和最后程序输出经过计算后的最大值即可,不需要输出具体的区间。如给定序列 [6 2 1]则根据上述公式, 可得到所有可以选定各个区间的计算值:
[6] = 6 * 6 = 36;
[2] = 2 * 2 = 4;
[1] = 1 * 1 = 1;
[6,2] = 2 * 8 = 16;
[2,1] = 1 * 3 = 3;
[6, 2, 1] = 1 * 9 = 9;
从上述计算可见选定区间 [6] ,计算值为 36, 则程序输出为 36。
区间内的所有数字都在[0, 100]的范围内;
n=int(input()) v1=[int(x) for x in input().split()] result=[] for i in range(0,n): min1=0 sum1=0 for j in range(i,n): min1=min(v1[i:j+1]) sum1=sum(v1[i:j+1]) result.append(min1*sum1) print(max(result))
package test; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class test { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); int[] v2=new int[n]; for(int i=0;i<n;i++) { v2[i]=Integer.valueOf(scanner.next()); } List<Integer> result=new ArrayList<Integer>(); for(int i=0;i<n;i++) { for(int j=i;j<n;j++) { result.add(getmin(v2,i,j)*getsum(v2,i,j)); } } System.out.print(getmax(result)); } public static int getmin(int[] n,int start,int end) { int min1=n[start]; for(int i=start;i<end+1;i++) { if(n[i]<min1) { min1=n[i]; } } return min1; } public static int getmax(List<Integer> n) { int min1=n.get(0); for(int i:n) { if(i>min1) { min1=i; } } return min1; } public static int getsum(int[] n,int start,int end) { int sum=0; for(int i=start;i<end+1;i++) { sum=sum+n[i]; } return sum; } }