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;
}
}
来源:oschina
链接:https://my.oschina.net/u/4274688/blog/3417147