小编Ins*_*der的帖子

生成所有可能的N位数字的算法,其数字按递增顺序排列

我想要一个算法来生成所有可能的N位数字,其数字按递增顺序排列.

例如:如果N = 3,那么可能的数字是:012,123,234,246,567,259,因为:

0 <1 <2

...

2 <5 <9

等等

我该怎么做?

我开发了以下算法,但它只生成连续增加数字的数字,如123,234,345,456,567等.因此,错过了一大组数字.

private static void generate(int start,int n)
{
    if((start+n)>9)
        return;
    else
    {
        for(int i=0;i<n;i++)
            System.out.print(start+i);

        System.out.println();
        generate(start+1,n);
     }
}
Run Code Online (Sandbox Code Playgroud)

algorithm

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

const函数重载

我很困惑为什么下面的代码没有产生任何错误,因为传递给显示的参数是相同的类型,即char.const真的有所不同吗?

#include<iostream>

using namespace std;

void display(char *p)
{
    cout<<p;
}
void display(const char *p)
{
    cout<<p;
}

int main()
{
    display("Hello");
    display("World");
}
Run Code Online (Sandbox Code Playgroud)

编辑 根据答案,永远不会调用第一个显示,这是正确的,输出也是如此.

但是假设我这样做:

int main()
{
    char *p="Hello";
    display(p);//now first display is called.
    display("World");
}
Run Code Online (Sandbox Code Playgroud)

编译器提供了一个warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]然后它调用第一个显示.它是否意味着字符串现在不再被视为常量?

c++ overloading const-correctness

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

内核恐慌:找不到可用的初始化。尝试将 init= 选项传递给内核

我刚刚开始了解内核的工作原理和内部结构,首先,我正在尝试构建内核并启动它。

我使用 qemu 作为 x86 架构的模拟器。

我正在关注这篇文章(虽然是针对手臂的):http : //www.kaizou.org/2016/09/boot-minimal-linux-qemu/

我使用以下命令构建了内核:

cd kernel_4.9
make x86_64-defconfig
make -j8
Run Code Online (Sandbox Code Playgroud)

这给了我 bzImage。现在我开发了一个initramfshello world 作为可执行文件的虚拟对象。这是init.c

#include <stdio.h>

void main()
{
    printf("Tiny init - Hello World...\n");
    while(1);
}
Run Code Online (Sandbox Code Playgroud)

打包 initramfs

gcc -static init.c -o init
chmod +x init
echo init | cpio -o --format=newc > initramfs
Run Code Online (Sandbox Code Playgroud)

现在运行 qemu :

qemu-system-x86_64 -kernel ~/data/linux/arch/x86/boot/bzImage -append 'console=ttyS0' -serial stdio -initrd ~/data/linux/arch/x86/boot/initramfs
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

[    1.158556] Write protecting the kernel text: 8528k
[    1.158842] Write protecting …
Run Code Online (Sandbox Code Playgroud)

boot qemu bsp linux-kernel embedded-linux

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

生成文件:--ignore-errors 与--keep-going

我正在经历的Makefile文件,我不明白之间的差别--ignore-errors--keep-going

有人可以强调两者之间的区别吗?对我来说,两者似乎在发生错误后都会继续。

虽然文档中不清楚,但--ignore-errors可能具有配方级别的范围,如果一个配方行失败,下一个将继续执行。--keep-going可能具有目标级范围,如果任何目标配方失败,配方执行将在那里结束,但仍将尝试创建其他先决条件/目标。这只是一种可能的看法,需要对此进行澄清。

makefile gnu-make

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

处理器如何从 SPI 闪存读取 BIOS?

典型的 x86 系统将固件(也称为 BIOS 或 UEFI)存储在基于 SPI 的闪存芯片中。当上电发生时,处理器开始执行复位向量,该向量指向存储 BIOS 的内存映射 SPI 芯片。从这里开始,引导发生在 BIOS 完成平台初始化、加载引导加载程序,然后加载内核时。

但是,处理器如何知道如何从 SPI 芯片中读取数据呢?我的意思是,那时处理器将不知道 SPI 协议,芯片的哪些寄存器写入命令以及哪个寄存器查找读取的数据。读取是如何发生在如此低的水平上的?

x86 bios spi firmware uefi

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

C++中的枚举和匿名枚举

1)以下代码显示了星期三枚举元素的索引.如何使其打印值而不是索引.

int main()
{
    enum day{sunday,monday,tuesday,wednesday,thursday,friday,saturday};
    day d=wednesday;
    cout<<d;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

2)在什么情况下我更喜欢匿名枚举而不是枚举

c++

5
推荐指数
2
解决办法
7352
查看次数

无法在我的Swing程序中设置JPanel的Background.

我将JPanel设置为我的JFrame的contentPane.

我用的时候:

jPanel.setBackground(Color.WHITE);
Run Code Online (Sandbox Code Playgroud)

不应用白色.

但是当我使用时:

jFrame.setBackground(Color.WHITE);
Run Code Online (Sandbox Code Playgroud)

它有效......我对这种行为感到惊讶.它应该是相反的,不应该吗?

SSCCE:

这是一个SSCCE:

主类:

public class Main {
    public static void main(String[] args) {
        Window win = new Window();
    }
}
Run Code Online (Sandbox Code Playgroud)

窗口类:

import java.awt.Color;
import javax.swing.JFrame;

public class Window extends JFrame {
    private Container mainContainer = new Container();

    public Window(){
        super();
        this.setTitle("My Paint");
        this.setSize(720, 576);
        this.setLocationRelativeTo(null);
        this.setResizable(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainContainer.setBackground(Color.WHITE); //Doesn't work whereas this.setBackground(Color.WHITE) works
        this.setContentPane(mainContainer);
        this.setVisible(true);
    }
}  
Run Code Online (Sandbox Code Playgroud)

集装箱类:

import java.awt.Graphics;
import javax.swing.JPanel;

public class Container extends JPanel {
    public Container() {
        super();
    } …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel

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

确定给定数量N是否可以成为具有所有3个整数边的直角三角形的斜边的算法

假设您给出了一个直角三角形的斜边,那么如何确定给定的斜边是否有两个可能的整体较小的边.

例如,你将斜边视为5.然后你必须确定给定的直角三角形是否有较小的积分边.答案是yes因为我们可以将较小的边用作3和4,因此得到3-4-5直角三角形.

同样,对于斜边7,我们可以没有这样的直角三角形.

换句话说,我们必须找出给定数字N是否可以作为右三角形的斜边,所有三边都是整数.

我阅读了关于毕达哥拉斯三重奏的整篇文章,但仍然没有成功.我很困惑要检查哪些条件.请帮忙.

c c++ java algorithm geometry

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

如何使用CSS3制作教室绿板效果?

我想使用 css 实现教室绿板效果(只是带有粉笔粉效果的绿色),如下图所示

在此输入图像描述

我找到了接近文字的字体,但对于绿板,我尝试选择颜色并将其用作 div 的背景,但它看起来很朴素且统一,这是不现实的。

我可以使用 CSS 实现白绿色效果吗?我不想使用图像来实现这一点。

(我相信这是可能的,因为有一次我看到有人用纯 CSS 制作了一个完整的可乐罐)

html css

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

是否可以使用Travis CI测试与硬件相关的代码?

我只是了解Travis CI,并阅读了一些文档。对于开源项目,这似乎是一个不错的解决方案。

到目前为止,通过Travis文档的阅读,我怀疑我是否能够以某种方式将其连接到我的个人硬件。

我正在研究GitHub上用C / C ++编写的一些与IoT相关的项目。在Travis CI上基于工件构建和发布图像应该不是问题。但是,在测试方面,绝对不能在其(Travis's)硬件上进行测试。这些二进制文件需要放在我的开发板上(raspberry pi),然后应该执行测试用例。测试服完成后,应将结果通知Travis CI。

Travis允许这种功能吗?如果没有,那将是一个很大的限制。

continuous-integration travis-ci devops travis-ci-cli

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