这只是一个实践测试问题,我很好奇如何优化性能。谢谢!
最大公因子(GCD),也称为N个数的最高公因子(HCF),是除以所有数而不给出余数的最大正整数。
编写一个算法来确定N个正整数的GCD。
function generalizedGCD(num, arr)
{
// find the factors of lowest member of arr and then check if every other number is divisible
arr.sort( function( a, b ) { return a-b; });
const lowest = ar
我需要找到一个正整数的最大除数并输出它。除数不应为1或等于整数本身。如果是质数,则输出应为"0“。到目前为止,我已经有了这个代码。然而,它并不起作用。它只在我使用" break“而不是"return 0”语句时有效,但根据任务,我不应该使用break :(我如何修复它?Thnx
#include <stdio.h>
int main() {
int input, maxDiv;
int div = 2;
scanf("%d", &input);
for ( ; div <= input/2;
对于经典的两和问题,我有一个O(n^2)的解决方案。其中A1...n排序的正整数数组。T是某个正整数。
需要证明A包含两个不同的元素a和b s.t。a+ b=t
到目前为止我的解决方案是:
t = a number;
for (i=0; i<A.length; i++)
for each A[j]
if A[i] + A[j] == t
return true
return false
如何使其成为线性解决方案?O(n)抓挠我的头,试图弄清楚。
这是我到目前为止想到的一种方法。我从A的开头开始,j
#include <iostream>
using namespace std;
int main ()
{
unsigned int num; unsigned long long int fact = 1;
cout << "Number = "; cin >> num;
for (int i = 1; i <= num; ++i)
{
fact *= i;
}
cout << "Factorial = " << f
实际上,我是在教自己算法,在这里我试图解决以下问题:
我们有一个任意阶的n个正整数数组,我们有k,它是k>=1 to n,问题是输出k个最小的奇数整数。如果A中奇数数小于k,则应报告所有奇数整数。例如,如果A= 2,17,3,10,28,5,9,4,12,13,7和k= 3,输出应该是3,5,9,我想在O(n)时间内解决这个问题。
我目前的解决方案是有另一个只有奇数的数组,然后应用这个算法,通过找到中位数并将列表划分为L、中位数、右边,然后按以下方式比较k:
If |L|<k<= (|L|+|M|) Return the median
else if K<|L|, s
给定五个正整数,通过精确地求和五个正整数中的四个,找到可以计算的最小值和最大值。然后将各自的最小值和最大值打印为两个空格分隔的长整数的一行。
示例
arr = 1,3,5,7,9
最小和为1+3+5+7= 16,最大和为3+5+7+9= 24。函数打印
16 24
基本上,每次添加数组(不包括一个元素)并检查其中的最小和和。
class Result {
/*
* Complete the 'miniMaxSum' function below.
*
* The function accepts INTEGER_ARRAY arr as
我正在尝试编写一个程序来计算前N个奇数的和。其中N是第一个奇数的数目(例如N=4,那么第一个赔率是1,3,5,7) 它应该输出奇数。 代码是否正确?(假设它需要在循环中)还是有更好的代码来计算总和?另外,如何输入验证负数?我只知道如何处理整数。(输入只需为正整数) numberN=input("Please enter a positive number N: ")
sumofodd = 0
try:
digit = int(numberN)
if digit > 0:
for n in range (0,digit+1,1):
问题如下:
编写一个程序,提示用户输入一个表示书中所有页码之和的正整数m。程序打印该数字是否为有效和。例如,整数21是有效的页码和,因为1+2+3+4+5+6= 21。整数25不是有效和,因为前6个页码的和是21,下一个页码的和是7,所以前7个页码的和应该是28。如果m是所有页码的有效和,则必须有一个整数n,使1+2+3+…+n= n(n+1)/2 =m
这是我的密码:
#include <iostream>
using namespace std;
int main() {
int num,n=0,sum=0;
cout<<"Enter a p
我试图实现改变计数问题的一个变体(在算法中),其中需要找到可以改变数量的不同方法的数量,经过大量推理后,它变成了一个数学问题。例如,如果给定硬币50、20、100,则找出改变300的方法的数量
这个问题是一个如下形式的方程
ax1 + bx2 + ... + kxn = y, a, b, ..., k and y all known and > 0
对于包含0的正整数集,需要找到所有可能的解。实际上,我只需要解决方案的数量。我通常会自己想出算法,但我不确定如何解决这个问题。
我写了两个函数:
is_integer(),它尝试获取作为输入的正整数或负整数,并返回相同的值。
square(),它将返回的值作为参数,并返回相同的平方。
square()中的代码使用了一个for-loop,它将整数除以“重复相加”。最后,脚本输出square()返回的整数的平方。
请检查我的代码,指出任何类型的错误并提出建议。
# Squares an integer by repetitive addition
# Uses a for-loop
def square(integer):
result = 0
for element in range(1, abs(in
我对Java非常陌生,在这个节选中我面临一个问题:编写一个方法findMax(),它反复读取整数,直到读取0整数,并跟踪已读取的最大整数。然后,findMax()返回输入的最大数字。
我的问题是,当输入至少包含一个正整数时,我的代码(以下)工作,但是当输入只包含负整数时,它就不能工作了:
import java.util.Scanner;
public class FindMaxInSeq {
public static int max() {
Scanner scanner = new Scanner(System.in);
int maxSoFa
编写一个函数,返回v下所有正整数的列表,这些正整数可以表示为两个丰富数字的和。
我对编码非常陌生,所以它非常混乱,我甚至不明白其中的一半是如何工作的。我尝试了多个东西,都是在这样的前提下,我将第0和第0,然后第1,然后第2,直到我添加第0和最后一个元素。然后第0元素更改为第1元素,我将其添加到第1元素,然后是第2元素,然后是第3元素,直到我添加第1和最后一个元素。
以下是我迄今尝试过的代码:
def divisors(a):
b=[]
for i in range(1,a):
if a%i==0:
b.append(i)
if s
输入:具有G顶点的连通无向图n。
输出:顶点0, 1, ..., n - 1的线性排序,它最小化
sum(j - i for i in range(n) for j in range(n) if i < j and (i, j) in G)。
n可能约为1000000,边缘数将是一个常数因子,大于n,约为5000000。在一个稍一般的问题中,边可能有较小的正整数权重。最好有一个确切的解决办法,但没有必要。
一种方法可能是泡沫分类的一种变体,如果它能降低总和,就可以交换元素。但我不确定这个算法是否会陷入局部最小值。
对于给定的数N(0<N<=100),求出最小正整数X可被N除,其中X的数字之和等于N,X不等于N。
public static int getSmallestNumber(int input1) {
int res =0;
for(int i=2;i<10000;i++) {
if(getSum(input1*i) == input1) {
res = input1*i;
break;
}
}
return res;
}
static int g
X、Y和Z是三个正整数。我必须找到a,b和c的值,这样X^a * Y^b * Z^c最接近于给定的数,N和a+b+c是最小的(a、b和c是正整数)。
编辑:我目前的解决方案是在X、Y和Z上迭代,从1开始。计算这些项的乘积,与以前的最佳结果进行比较,并相应地更新a、b和c的值。下面粘贴了这种方法的python片段。我假设X,Y和Z是大于1的整数。
def foo(X, Y, Z, N):
res = a = b = c = -1
for i in range(1, int(math.log(N)/math.log(X))):
for j in range(1,
假设我有一个简单的方程,形式如下:
7x + 4y = n
其中n是我们选择的,x,y和n都是正整数。这是给我们的唯一的方程式。在可能的解中,我们需要解(x,y),其中x是最小的。例如:
7x + 4y = 14, then (2, 0) is the solution
7x + 4y = 15, then (1, 2) is the solution
7x + 4y = 32, then (4, 1) and (0, 8) are the possible solutions,
of which (0, 8) is the correct solution
我想设计一个算法来在尽可能少的运行
一直在研究这个卡塔已经有一段时间了,但仍然无法弄清楚我错过了什么。问题是给出两个整数a和b,它们可以是正整数,也可以是负整数,求出它们之间的所有数之和,然后返回它。如果这两个数字相等,则返回a或b。
到目前为止,这是我的解决方案:
def get_sum(a,b)
sum = [a+=b].sum
if sum == a or b
return a
end
end
这是输出结果:
Test Passed: Value == 1
Test Passed: Value == 3
Expected: 14, instead got: 4
Expected: 127