我已经读过双精度和单精度之间的区别.然而,在大多数情况下,float
和double
,似乎可以用一个可以互换的,即或其他的似乎不影响使用效果.这是真的吗?浮动和双打什么时候可以互换?它们之间有什么区别?
我知道如何制作Fibonacci数列表,但我不知道如何测试给定数字是否属于斐波纳契列表 - 记住的一种方法是生成fib列表.数字达到那个数字并查看它是否属于数组,但必须有另一种更简单,更快速的方法.
有任何想法吗 ?
我想制作一个程序,以字符串格式读取一些数字并输出如下:如果数字是12345,那么它应输出12 23 34 45.我尝试使用c ++字符串库中的substr()函数,但它给了我奇怪的结果 - 它输出1 23 345 45而不是预期的结果.为什么?
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int main(void)
{
string a;
cin >> a;
string b;
int c;
for(int i=0;i<a.size()-1;++i)
{
b = a.substr(i,i+1);
c = atoi(b.c_str());
cout << c << " ";
}
cout << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我得到了这个C代码.
#include <stdio.h>
int main(void)
{
int n, d, i;
double t=0, k;
scanf("%d %d", &n, &d);
t = (1/100) * d;
k = n / 3;
printf("%.2lf\t%.2lf\n", t, k);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想知道为什么我的变量't'总是为零(在printf函数中)?
我给了N个号码,并为他们应用关于他们的订单的M规则.规则以一对索引表示,每对(A,B)告诉索引A(第A个数字)的数字必须在第B个数字之后 - 它不必在他旁边.
Ex: N = 4
1 2 3 4
M = 2
3 2
3 1
Output: 1234, 4213, 4123, 2134, 2143, 2413, 1423 ...Maybe there are even more:)
Run Code Online (Sandbox Code Playgroud)
该算法应该给我所有可用的排列不会破坏规则,例如3 - 必须始终在2之后和1之后.
我试过强制但它不起作用(虽然强力应该在这里工作,N在范围(1,8).)
有任何想法吗 ?
如何反转C中的按位AND(&)?
例如,我在C中有一个这样的操作:
((unsigned int)ptr & 0xff000000))
Run Code Online (Sandbox Code Playgroud)
结果是0xbf000000
.我现在需要的是如何扭转上述情况,即ptr
通过使用操作的结果来确定,当然0xff000000
.
有没有简单的方法在C中实现这个?
有一个M二进制数组,每个都处于状态'0'或'1'.您可以在更改数字状态时执行几个步骤,并且在每个步骤中您都可以更改N个连续数字的状态.给定数字M,N和带有成员的数组,您将要计算将所有二进制数转换为一个状态所需的最小步数 - 1或0.
如果M = 6且N = 3并且数组是1 0 0 1 0 0,那么解决方案将是2.解释:我们可以翻转它们以便它们分两步完成:我们从索引2翻转到4并且我们将数组转换为111000,然后将最后三(N)0转换为1.
如果我们有一个包含所有数字的数组,最多N(N <10),找到所有缺失的数字的最佳方法是什么.例:
N = 5
1 5 3 2 3
Output: 1 5 4 2 3
Run Code Online (Sandbox Code Playgroud)
在前面,数字4是缺失的,有2个3,所以我们用4替换了第一个,现在数组已经完成 - 所有数字都达到了5个.
有没有简单的算法可以做到这一点?
如果我们在c ++中有以下2个代码片段来执行相同的任务:
int a, b=somenumber;
while(b > 0)
{
a = b % 3;
b /= 3;
}
Run Code Online (Sandbox Code Playgroud)
要么
int b=somenumber;
while(b > 0)
{
int a=b%3;
b /= 3;
}
Run Code Online (Sandbox Code Playgroud)
我对计算机体系结构/ c ++设计了解不多,但我认为第一个代码更快,因为它在开始时声明了整数a并且只在while循环中使用它,而在第二个代码中,整数a是每次while循环重新开始时都被声明.有人可以帮我这个,我是正确的还是为什么?为什么?