我正在上在线C课程,但教授拒绝回复电子邮件,我需要一些帮助。
无论如何,我们的任务是编写一个程序,从用户那里获取一个整数,并找到最大偶数位数,以及该数字在给定整数中发生的次数。
#include <stdio.h>
void extract(int);
void menu(void);
int main() {
menu();
}
void menu() {
int userOption;
int myValue;
int extractDigit;
do {
printf("\nMENU"
求n^p的一种算法是:
unsigned long long power(unsigned n, unsigned p)
{
unsigned long long x=1, y=n;
while(p > 0)
{
if(p&1) x *= y;
y *= y;
p >>= 1;
}
return x;
}
有人能解释一下这个算法背后的逻辑/数学吗。我知道它能工作,并为一些测试用例(试运行)解决了问题。我的意思是,它是如何工作的,这是如何有效地从一般天真的方法。
我想找出两个整数之间的偶校验数的个数。以下是我到目前为止写的内容: #include <bits/stdc++.h>
using namespace std;
#define fastio \
ios_base::sync_with_stdio(false); \
cin.tie(NULL)
#define ll long long int
bool findParity(ll x)
{
ll y = x ^ (x >> 1);
y = y ^ (y >> 2);
y
(这个问题指的是代码强制问题),我想知道是否有任何n (2 ≤ n ≤ 10¹⁴)有奇数除数。使用C++11,我认为通过迭代每一个奇数直到n,然后用%检查它是否是可除的,这是可能的。诸如:
for(unsigned long long i=3;i<n;i+=2){
if(n%i==0) return true; //It has an odd divisor
}
return false; //n%j==0 was never true so it doesn't have an odd divisor
当然,如果给出一个很大的数字,结果是非常缓慢的。我发现人们正在通过位移
在下面的代码片段中,我找到了区间a,b之间所有奇数的数字之和。
def SumOfDigits(a, b):
s = 0
if a%2 == 0:
a+=1
if b%2 == 0:
b-=1
for k in range(a,b+1,2):
s+= sum(int(i) for i in list(str(k)))
return s
是否有一种有效的方法来实现同样的目标?任何模式,这是导致一个明确的削减公式。
我在里搜索过
我试图找出Collatz猜想序列的长度,但我的答案是错误的……我的代码出了什么问题?我在网上找不到相关的解决方案…… a=int(input())
mylist=[]
while a != 1:
if a%2 == 0:
a = a/2
else:
a = a*3 + 1
mylist.append(a)
print(len(mylist)) 输入:6 输出:2 如果我输入6,答案应该是9。我试着把它们放到一个列表中,然后找出列表的长度。
给定一个int变量,我想检查它的二进制表示中'1‘的数目是偶数还是奇数。它可以通过xor操作来实现,比如
int n;
int s = 0;
for(;n;n>>=1)
s ^= (n&1);
在C++中有更好的方法来做到这一点吗?
注意:我不是要求'1's的数量,而是它的奇偶性,所以我想可能有一些比我的代码更好的代码。
我正在编写一个简单的程序来找到两个输入数字之间的奇数之和,我希望得到任何反馈。我已经在这个问题上做了很长时间了,我需要一些专业知识。
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("#1: ");
int num1 = s.nextInt();
System.out.print("
我需要为这个方程找到所有可能的解决方案:
x+2y = N,x<100000和y<100000。
比如说,给定N=10。
我在蟒蛇里这样做
for x in range(1,100000):
for y in range(1,100000):
if x + 2*y == 10:
print x, y
我应该如何为速度优化这一点?我该怎么办?
本质上这是一个Language-Agnostic问题。C/C++回答也会有帮助。
我正在研究Euler项目,问题3。问题是:
13195的素数是5,7,13和29。600851475143的最大素数是什么?
在回答这个问题时,我把任务分解为首先找到所有素数<x(反向)。为什么下面的代码似乎不工作,我不确定是逻辑或不正确的使用运算符。
#A function to find prime numbers under n
def find_prime(n):
for i in reversed(xrange(2, n)):
if (n % i) != 0:
print i
find_prime(n)
在测试中,为了好
在这里,给定数'n‘,我们找到它前面偶数正数的和。为此,我试图在For循环中添加一个while循环,但看起来这是行不通的。
#include<iostream>
using namespace std;
int main() {
int n;
cin>>n;
int sum=0;
for(int counter=1;counter<=n;counter++)
while(counter%2==0) {
sum=sum+counter;
}
cou
这里我想从一组给定的数字中找出最大的奇数,如果那里没有奇数,则打印相应的效果。这里我将偶数的值设置为0,然后将其与其余的值进行比较,那么这是正确的逻辑吗?我得到了想要的结果,但具有偶数值的变量的值被设置为零。谢谢。
x, y, z = 45, 61, 82
if x%2==1 or y%2==1 or z%2==1:
if x%2==0:
x = 0
if y%2==0:
y = 0
if z%2==0:
z = 0
if x>y and x>z:
print(x)
elif
我编写了一种方法,以求奇数整数连续递减序列的最大和。
例如:如果序列为13 9 7 12 13 15 13,则和为29 (13 +9+ 7)。
我不认为它是好的,因为相同的代码会重复多次。
static int SumOfLargestSequence(int[] array)
{
int sumMax = 0;
int sum = 0;
for (int i = 0; i < array.Length; i++)
{
if (i == 0)