我想要一个算法来生成所有可能的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) 我很困惑为什么下面的代码没有产生任何错误,因为传递给显示的参数是相同的类型,即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]然后它调用第一个显示.它是否意味着字符串现在不再被视为常量?
我刚刚开始了解内核的工作原理和内部结构,首先,我正在尝试构建内核并启动它。
我使用 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) 我正在经历的Makefile文件,我不明白之间的差别--ignore-errors和--keep-going。
有人可以强调两者之间的区别吗?对我来说,两者似乎在发生错误后都会继续。
虽然文档中不清楚,但--ignore-errors可能具有配方级别的范围,如果一个配方行失败,下一个将继续执行。--keep-going可能具有目标级范围,如果任何目标配方失败,配方执行将在那里结束,但仍将尝试创建其他先决条件/目标。这只是一种可能的看法,需要对此进行澄清。
典型的 x86 系统将固件(也称为 BIOS 或 UEFI)存储在基于 SPI 的闪存芯片中。当上电发生时,处理器开始执行复位向量,该向量指向存储 BIOS 的内存映射 SPI 芯片。从这里开始,引导发生在 BIOS 完成平台初始化、加载引导加载程序,然后加载内核时。
但是,处理器如何知道如何从 SPI 芯片中读取数据呢?我的意思是,那时处理器将不知道 SPI 协议,芯片的哪些寄存器写入命令以及哪个寄存器查找读取的数据。读取是如何发生在如此低的水平上的?
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)在什么情况下我更喜欢匿名枚举而不是枚举
我将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) 假设您给出了一个直角三角形的斜边,那么如何确定给定的斜边是否有两个可能的整体较小的边.
例如,你将斜边视为5.然后你必须确定给定的直角三角形是否有较小的积分边.答案是yes因为我们可以将较小的边用作3和4,因此得到3-4-5直角三角形.
同样,对于斜边7,我们可以没有这样的直角三角形.
换句话说,我们必须找出给定数字N是否可以作为右三角形的斜边,所有三边都是整数.
我阅读了关于毕达哥拉斯三重奏的整篇文章,但仍然没有成功.我很困惑要检查哪些条件.请帮忙.
我想使用 css 实现教室绿板效果(只是带有粉笔粉效果的绿色),如下图所示

我找到了接近文字的字体,但对于绿板,我尝试选择颜色并将其用作 div 的背景,但它看起来很朴素且统一,这是不现实的。
我可以使用 CSS 实现白绿色效果吗?我不想使用图像来实现这一点。
(我相信这是可能的,因为有一次我看到有人用纯 CSS 制作了一个完整的可乐罐)
我只是了解Travis CI,并阅读了一些文档。对于开源项目,这似乎是一个不错的解决方案。
到目前为止,通过Travis文档的阅读,我怀疑我是否能够以某种方式将其连接到我的个人硬件。
我正在研究GitHub上用C / C ++编写的一些与IoT相关的项目。在Travis CI上基于工件构建和发布图像应该不是问题。但是,在测试方面,绝对不能在其(Travis's)硬件上进行测试。这些二进制文件需要放在我的开发板上(raspberry pi),然后应该执行测试用例。测试服完成后,应将结果通知Travis CI。
Travis允许这种功能吗?如果没有,那将是一个很大的限制。