((num / i) % 1 == 0)当num是double时,为什么不能在C++中工作?我将如何编写此代码,通过检查是否留下余数(等等0.3333)来检查因子.
int getFactorials (double num)
{
int total = 0; // if (total / 2) is equal too 'num' it is a perfect number.
for (int i = 1; i < num; i++)
{
if ((num / i) % 1 == 0)
{
cout << i << endl;
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我需要计算两个值之间的百分比变化。
我在这里的代码:
echo $time1
echo $time2
pc=$(( (($time2 - $time1)/$time1 * 100) ))
echo $pc
Run Code Online (Sandbox Code Playgroud)
在控制台中带来这样的输出(带有set -xe选项)
+ echo 1800
1800
+ echo 1000
1000
+ pc=0
+ echo 0
Run Code Online (Sandbox Code Playgroud)
数学表达式中的代码似乎编写正确,但是,我得到-80左右。为什么这发生在我身上?
问题的第二部分。我无权访问,也将无权访问bc命令。据我所知,它可以给我绝对数字。
所以..如果没有bc命令-这对于IF条件是个好主意吗?
if (( (( "$pc" > 20 || (( "$pc" < -20 )); then...
Run Code Online (Sandbox Code Playgroud) 我想打印以下内容:
0
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这个:
ECHO OFF
FOR /L %%A in (1,1,5) DO (
SET /a "B=%%A-1"
ECHO %B%
)
Run Code Online (Sandbox Code Playgroud)
然而,这给了我:
4
4
4
4
4
Run Code Online (Sandbox Code Playgroud)
A在我的代码中同时使用和时,如何实现所需的输出B?
如何在 Julia 中将二维元组添加到二维矩阵?
t1 = ((10,20),(30,40)); #2d immutable tuple
a = [1 2;3 4] #2d matrix
a .+ t1
Run Code Online (Sandbox Code Playgroud)
抛出错误:
MethodError: no method matching +(::Int64, ::Tuple{Int64, Int64})
Closest candidates are:
+(::Any, ::Any, ::Any, ::Any...) at operators.jl:560
+(::T, ::T) where T<:Union{Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8} at int.jl:87
+(::Integer, ::Ptr) at pointer.jl:161
...
Stacktrace:
[1] _broadcast_getindex_evalf
@ .\broadcast.jl:648 [inlined]
[2] _broadcast_getindex
@ .\broadcast.jl:621 [inlined]
[3] getindex
@ .\broadcast.jl:575 [inlined]
[4] copy
@ .\broadcast.jl:922 [inlined]
[5] materialize(bc::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{2}, Nothing, …Run Code Online (Sandbox Code Playgroud) 我创建了一个Matrix类,使用
static_assert(std::is_arithmetic<T>::value,"");
Run Code Online (Sandbox Code Playgroud)
检查模板类型是否为算术类型.所以我尝试了
Matrix<char> matrix1(3,3); // ctor takes number of rows and columns
Run Code Online (Sandbox Code Playgroud)
它的工作原理.不使用char类型调用static_assert函数.这是正常的?char看起来像算术类型?
在一些代码中,我看到了这一点:
private void compute(Long a, Long b, Long c) {
long result = a-(b+c);
...
Run Code Online (Sandbox Code Playgroud)
结果存储在原始long中而不是对应于其操作数的Long对象中,这似乎有点奇怪。
是否有任何理由将结果存储为原语?
我正在尝试解决简单的字符串表达式,例如1 + 2*3/4,没有括号.我已完成简单的整数部分,上面的表达式将完美地工作,但现在我卡住了十进制值,例如1.1/2.2*4.4我想要的是将整个十进制数推入堆栈(双),我我正在研究它已经有一段时间了,但还是没有得到它,你的帮助将非常感激.目前的代码是:
import java.util.Stack;
import java.text.DecimalFormat;
public class EvaluateString
{
public static double evaluate(String expression)
{
char[] tokens = expression.toCharArray();
DecimalFormat df = new DecimalFormat("#.##");
// Stack for numbers: 'values'
Stack<Double> values = new Stack<Double>();
// Stack for Operators: 'ops'
Stack<Character> ops = new Stack<Character>();
for (int i = 0; i < tokens.length; i++)
{
// Current token is a whitespace, skip it
if (tokens[i] == ' ')
continue;
// Current token is a number, push it to stack …Run Code Online (Sandbox Code Playgroud) 我正在用D制作一个玩具lisp解释器,我不太了解Lisp的理论.
我想知道Lisp是否可以自己实现基本的算术函数(+, - ,×,÷).大多数Lisp/Scheme方言使用C语言,类似Java的语言实现它,并将其作为lisp代码重载(重复实现?).
我想纯粹为Lisp代码编写算术函数.可能吗?
什么是bool保证返回?我可以依赖bool类型来解释为0或1吗?如果bool的数值解释在C99中不可靠,那么有一个标准吗?在依赖bool进行算术运算时,我在LLVM,GCC或Visual C++中应该注意什么?
举个例子,如果我这样做:
// An example of calculating a possible stride in bytes.
// hasData(), is8bit(), and is16bit() return as bool type
unsigned int stride = object->hasData() * object->size() *
(object->is8bit() * sizeof(uint8_t) +
object->is16bit() * sizeof(uint16_t));
Run Code Online (Sandbox Code Playgroud)
在示例中,我打赌bool类型只返回0或1.
我是Prolog的初学者,有两个要求:
f(1) = 1
f(x) = 5x + x^2 + f(x - 1)
规则:
f(1,1).
f(X,Y) :-
Y is 5 * X + X * X + f(X-1,Y).
查询:
f(4,X).
输出:
ERROR: is/2: Arguments are not sufficiently instantiated
如何添加f(X-1)的值?