为什么prolog在这样的数值计算中如此快速和准确
factorial(X, N) :- N = 0, X is 1;
N > 0, N1 is N - 1, factorial(X1, N1), X is X1 * N.
我输入了factorial(X, 10000).,得到的答案又准又快,这个数字太长了。那么prolog是如何做到这一点的呢?它里面的数字的数据结构是什么呢?如何在C、C++、C#和Java等语言中实现这一点?
假设我们有一个非常简单的代码,它的开头如下:
#include <stdio.h>
int main() {
char c;
int x;
printf("Num here: ");
c = getchar();
x = 0;
while (c!=EOF) {
x = c - 48; //to convert x from ASCII
在这个程序中,我试图让用户键入一个数字(例如:42),我正在尝试将位数加到十位数(以及百位数,等等);我很难理解如何让while循环返回循环直到数字的末尾。
因此,我
我是一个用MIPS汇编编程的初学者,我想知道在我读完一个数字后如何打印它的第一个数字。
.data
number_1: .word
.text
#read in first number
li $v0, 5
syscall
sw $v0, number_1
#print first digit
li $v0, 1
lw $a0, number_1
syscall
#end program
li $v0, 10
syscall
例如,如果我输入590,我只想打印'5‘。另外,我如何分别打印下两个数字?
使用上面的代码,它只打印我输入的整数: 590我尝试了lb,而不是lw,但它打
$sql = "SELECT phone, secques, secans, quesid FROM 2fa WHERE userid = '5' ORDER BY Rand() LIMIT 1";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$c= $row["secques"];
$s=
我需要一个正则表达式来检查输入是否恰好是4个数字。我正在使用"\d{4}“(也尝试了”\d\d“)。但是如果你输入5个数字,它也会显示输入是有效的。
[TestMethod]
public void RegexTest()
{
Regex expr = new Regex("\\d{4}");
String a = "4444", b = "4l44", c = "55555", d = "5 55";
Match mc = expr.Ma
以前有人问过我这个问题,但这次我想知道C++和C#的编译器有什么不同。
数组的C#编码
static void Main(string[] args)
{
int n;
int[] ar = new int[50];
Console.Write("Enter the size of array= ");
n = int.Parse(Console.ReadLine());
for (int i = 0; i < n; i++)
{
ar[i] =
我在c中有以下代码
#include <stdio.h>
int main(void)
{
int a, b, c, sum;
double d, p;
sum = a + b + c;
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
d = sum / 3;
printf("3个整数的平均值是:d=%.2f", d);
p = a / sum * 100;
printf(",
我试图在java上将一个数组和一个二维数组相乘,我的程序编译了,但当我试图向它输入任何东西时,它总是返回错误java.lang.NullPointerException;null。到目前为止,我的代码如下:
static double[][] productWithDiagonal(double[] a, double[][] b)
{
double[][] c = new double[3][];
{
for (int i = 0; i < b.length; ++i) {
for (int j = 0; j < b[1
输入可以是5、7或9,假设输入是5,那么程序生成5* 4个字母:"D E C B E D E D B D E D A C B E A A C B",现在我需要将它们放入4个数组中,即5个字符数组,但我不知道怎么做。下面是我是如何生成字母的。我将所有生成的字符放在一个char数组中,但我也不知道如何将它分成更小的4个字符数组。另一个问题是,正如我前面提到的,输入在每次运行时都会发生变化,但可以是5、7或9,所以程序不知道它需要多少个4数组。 由于术语的限制,我不能使用向量,只能使用标准库。 for (int i = 0; i < (input * 4); ++i) {
我对编程和堆栈溢出的博客并不熟悉,所以希望我能正确地遵循“do‘s和dont’s”。
我得到了一个赋值问题,要求我在数组中存储5个整数,并确定它们是否为素数。
我的问题如下:
如何将它们存储到整数数组中?
如何使我的程序将每个输入除以小于输入的每个数字?
到目前为止,我编写的代码是:
次主()
Dim a, b, c, d, e As Integer
Dim isPrime As Boolean = True
Console.WriteLine("Please enter a value for a: ")
a = Consol
这个特定的问题不涉及循环,我看到的大多数答案都涉及循环。这是我正在读的一本书的挑战。不,我不是学生(38岁)我实际上是在换职业,所以我决定开始学习如何编程。我正在读的这本书叫“C# /Joe2Pros简介”。
这是我到目前为止拥有的代码。我知道很可能有更好的方法来做这件事,使用我可能没有很好掌握的东西。例如,我知道"bool“是什么,但还没有在我的代码中使用它。因此,很难实现它。
int myChoice;
Console.Write("Please enter a number: ");
myChoice = int.Parse(Console
我有一个c程序,其中我接受2个数字作为输入。如何验证输入的是否只是数字而不是字符。
void main()
{
int a,b;
printf("Enter two numbers :");
scanf("%d%d",&a,&b);
printf("Number 1 is : %d \n Number 2 is : %d",a,b);
}
编辑添加的示例代码
由于某些原因,我必须确定一个大的数字是否是fibonacci数,所以我从互联网上复制了一些代码,并对其进行了一些修改,当输入很大时,它似乎不能很好地工作。这是代码:
# python program to check if x is a perfect square
import math
# A utility function that returns true if x is perfect square
def isPerfectSquare(x):
s = int(math.sqrt(x))
boo = (s*s == x);
return boo
#
我有个简短的问题。我有以下代码..。
def abc(c):
a = 1
my = set()
while a <= c:
b = randrange(1, 365)
my.add(b)
a = a + 1
print(my)
现在c是我的主要功能。C是提示用户输入的整数。例如,如果c= 10,那么只要一个< 10,它就会运行while循环并打印出在1到365之间随机生成的10个数字的集合。唯一的问题是它没有正确地打印出我的设置。
如果在Java...where中有以下内容,我想让用户为随机数生成器指定种子,因此对于给定的种子,随机数的顺序总是same...eventually将输入种子,每次生成相同的字母模式。
Random rand = new Random(Long.parseLong(t[0]));
char r = (char)(rand.nextInt(26) + 'A');
What would be the equvalent to do the same for random in C++
cin >> seed;
sra