小编use*_*720的帖子

求平方和时,是否需要显式处理负数或零?

我最近在课堂上做了一个测试。问题之一是:

给定一个数字n,用C / C ++编写一个函数,该函数返回数字平方的数字总和。(以下内容很重要)。的范围Ñ为[ - (10 ^ 7),10 ^ 7]。示例:如果n = 123,则您的函数应返回14(1 ^ 2 + 2 ^ 2 + 3 ^ 2 = 14)。

这是我写的函数:

int sum_of_digits_squared(int n) 
{
    int s = 0, c;

    while (n) {
        c = n % 10;
        s += (c * c);
        n /= 10;
    }

    return s;
}
Run Code Online (Sandbox Code Playgroud)

看着我正确。所以现在测试又回来了,我发现老师由于我不明白的原因没有给我所有的分数。据他说,为了使我的功能更完整,我应该添加以下细节:

int sum_of_digits_squared(int n) 
 {
    int s = 0, c;

    if (n == 0) {      // …
Run Code Online (Sandbox Code Playgroud)

c

213
推荐指数
6
解决办法
2万
查看次数

如何在数组的左侧和右侧找到最大元素?

我有一个 C++ 作业问题,我可以(并且确实)解决了,但速度不够快。

所以问题是这样的:在一个平台上,有n等宽和等高的条。开始下雨了。找出适合在条形之间的水量(非常糟糕的发音,我知道,最好看示例)。例子:

n = 6
bar lengths = {3, 0, 0, 2, 0, 4}
Answer would be = 10
Run Code Online (Sandbox Code Playgroud)

水的立方体会“填满”酒吧之间的空白空间,我需要找到立方体的数量:

解释:

另一个例子:

n = 12
bar lengths = {0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1}
Answer = 6
Run Code Online (Sandbox Code Playgroud)

我试过的:

对于阵列中的每个点,我找到了它左边和右边的最大高度条,然后我用左边的最大值和右边的最大值之间的最小值“填充”了这个点减去高度现在的酒吧:

#include <iostream>

using namespace std;

int main() {
    int n, a[100001], i, j, volume=0, max_left, max_right;
    cin >> n;

    // Input the array

    for (i=0; i<n; i++) {
        cin …
Run Code Online (Sandbox Code Playgroud)

c++

5
推荐指数
1
解决办法
1406
查看次数

我什么时候需要在 Assembly 中指定操作数的大小?

我刚开始在大学学习汇编(x86,NASM),我真的很困惑它是如何工作的。在我对此提出的许多问题中,这一直困扰着我。

我什么时候需要指定操作数的大小?有规律吗?例如:

segment  data use32 class=data
    a  db 10
    b  dw 40
segment  code use32 class=code
start:
    mov  AX, [b]
    div  BYTE [a]
Run Code Online (Sandbox Code Playgroud)

这里我们将操作div码中操作数的大小指定为BYTE。如果我删除那BYTE部分,我会得到一个错误,所以我们需要指定它。

segment  data use32 class=data
    a  db 10
    b  dw 40
segment  code use32 class=code
start:
    mov  AH, 2
    mul  AH
Run Code Online (Sandbox Code Playgroud)

在这里,我们不需要指定操作数的大小2。它只是有效。

那么我什么时候必须指定尺寸?是不是很简单:当我在内存中声明了一个变量时,指定它的大小?考虑到上面给出的例子,我倾向于这么认为,但通过我对 Assembly 的短暂体验,我发现它往往违背我关于事情应该如何运作的逻辑。

另外,在告诉我什么时候需要指定尺寸之后,你能告诉我为什么我们需要这样做吗?当我们需要这样做时,我们为什么需要这样做?我的意思是,我们已经声明了变量,所以变量的类型应该对程序可见,不是吗?为什么我们需要指定大小,否则我们会得到一个错误?

x86 assembly nasm

1
推荐指数
1
解决办法
112
查看次数

标签 统计

assembly ×1

c ×1

c++ ×1

nasm ×1

x86 ×1