我计划了一个简单的程序,用户需要10 int
,如果用户输入相同的号码,它会被添加到名为Frequency的新array
。
例如,用户输入[1,5,2,1,5,7,8,4,5,9]
,频率数组将为[2,3,1,2,3,1,1,1,3,1]
。
这是我到目前为止所尝试的内容,但我没有成功完成此任务。
int[] arr = new int [10];
Scanner s = new Scanner(System.in);
for(int i = 0; i< arr.length; i++)
{
System.out.println("Enter upto 10 numbers:");
arr[i] = s.nextInt();
}
int[] freq = new int[10];
for(int i=0; i< arr.length; i++)
{
//Frequency Method
}
public static int frequency(int[] total)
{
int count = 0;
// lost from here
}
return count;
}
感谢任何帮助。感谢您的时间和精力
答案 0 :(得分:0)
在静态方法中,我会进行修改,以便它需要int[] total
和int value
,并在方法中创建一个新的int
被调用的计数器,其值为0并创建一个for循环遍历int[] total
并比较int[i] total == value
是否为return
,如果是,则将计数器增加1并将计数器freq[i] = frequency(arr, arr[i]);
增加。
完成频率后,使用另一个for循环通过用户输入迭代数组,并在for循环中添加class Player(pygame.sprite.Sprite):
def __init__(self,x,y):
super(Player,self).__init__()
self.image=player_image
self.original_image=self.image
self.rect=self.image.get_rect(center=(x,y))
self.change_x=0
self.change_y=0
self.speed=7.5
self.inventory={'wood':0}
def changespeed(self,x,y):
self.change_x+=x
self.change_y+=y
def update(self,rect):
player.rotate()
self.rect.x+=self.change_x
self.rect.y+=self.change_y
screen.blit(self.image,(rect.x,rect.y))
def check(self):
global tick
if pygame.mouse.get_pressed()[0]:
for tree in resources:
tree_rect=tree.rect
if self.rect.colliderect(tree_rect) and tick>=9:
self.inventory['wood']+=1
tick=0
def rotate(self):
mouse_x, mouse_y = pygame.mouse.get_pos()
rel_x, rel_y = mouse_x - self.rect.x, mouse_y -self.rect.y
angle = (180 / math.pi) * -math.atan2(rel_y, rel_x)
self.image = pygame.transform.rotate(self.original_image, int(angle))
self.rect = self.image.get_rect(center=(self.rect.x,self.rect.y))
,这将在频率数组中添加重复数字。
答案 1 :(得分:0)
只是为了好玩,这是使用Java流的单行解决方案:
int[] freq = Arrays.stream(arr).map(x->(int)Arrays.stream(arr).filter(y->x==y).count()).toArray();