小编das*_*ght的帖子

递归计算pow(x,n)比蛮力更好吗?

我看到人们实施时pow(x,n),他们总是使用下面的类似解决方案.我的困惑是,下面的解决方案比较强力多倍x n次的优势是什么?

public class Solution {
    public double pow(double x, int n) {
        if(n == 0)
            return 1;
        if(n<0){
            n = -n;
            x = 1/x;
        }
        return (n%2 == 0) ? pow(x*x, n/2) : x*pow(x*x, n/2);
    }
}
Run Code Online (Sandbox Code Playgroud)

java algorithm

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

使用HashMap进行对象查找

我正在尝试使用Java HashMap<String, object>作为对象字典,因此通过其名称(string)查找对象.所有的名字都是独一无二的; 但是,通常非常相似(例如:"delay1","delay2").HashMap.get(string)找到具有该名称或唯一项目的保证是否只是寻找具有相同散列的项目.

代码运行的方式,看起来像查找不一致.

如果HashMap<String, object>不能满足我的需求,那么Java中的某些东西是否与C#字典类似?

java dictionary hashmap

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

这两个PhysicsVector方法有什么区别?

基于这些评论,他们应该做同样的事情.除此之外,当我使用'add'而不是'increaseBy'时,我的代码产生不同的输出.

/**
* standard vector addition. If <b> v = xi + yj</b>
* and <b>u = wi + zy</b>, then the method returns a vector
* <b>(x+w)i + (y+z)j</b>
*
* @param v first vector in sum
* @param u second vector in sum
* @return return summed vector
**/
public static PhysicsVector add(PhysicsVector v, PhysicsVector u){
    PhysicsVector sum = new PhysicsVector(v);
    sum.increaseBy(u);
    return sum;
}
Run Code Online (Sandbox Code Playgroud)

那是一个,而另一个是:

/**
* Add a vector <b>v</b> to the original vector. Normal vector …
Run Code Online (Sandbox Code Playgroud)

java

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

无法使用"IN"列表形成正确的Linq查询

我有以下SQL查询

;with cte as(
select a.* 
from [dbo].[AccountViewModel] a
where a.COLLECTORID = 724852
and a.MONTH = 12
and a.YEAR=2015)

select *
from cte c
where c.DispCode in ('Deceased','DND','WN','WI','NC','NORESPONSE','SKIP','SHIFTED','SFU')
OR (c.DispCode in('PTP','DIB','WCE','DP') and convert(varchar(11), c.PTPDate) >=convert(varchar(11), getdate()))
OR (MONTH(c.LastPaymentDate) = 12 and YEAR(c.LastPaymentDate)=2015)
Run Code Online (Sandbox Code Playgroud)

我需要将其转换为等效的Linq查询(C#).

Cte部分正常运行以下程序(我已经交叉检查了记录)

private List<AccountViewModel> GetAllAcountsForLoggedInAgents()
        {
            var allAcountsForLoggedInAgents = new List<AccountViewModel>();

           allAcountsForLoggedInAgents = new ViewModelDatabase()
                    .Accounts
                    .Where(a =>
                                a.COLLECTORID == 724852 && 
                                a.MONTH == DateTime.Now.Month &&
                                a.YEAR == DateTime.Now.Year
                          )
                    .ToList();

            return allAcountsForLoggedInAgents;
        }
Run Code Online (Sandbox Code Playgroud)

但CTE以外的部分工作不正常(表示记录不正确)

GetAllAcountsForLoggedInAgents()
.Where
( …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

嵌套类的成员函数返回嵌套类的类型

我在这样的类中有一个结构

template <class T>
class a {
    struct b {
        int var;
        b *foo(const T&);
    };
    int var;
};
Run Code Online (Sandbox Code Playgroud)

我想在foo外面定义struct b.

我怎么做?

c++ templates class nested-class

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

仅声明类类型的变量时的内存分配

在Java中,当我们只声明类类型的变量时,只创建一个引用(不为该对象分配内存).是否在堆上创建了某个空间的引用?或者如果我错了那么当我们宣布变量时,在内存中会发生什么?

Test t; 
Run Code Online (Sandbox Code Playgroud)

java

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

Java继承的行为不符合预期

需要以下上下文:这种编码方式的目的是避免if- else语句和instanceof; 这总是一个坏主意.

我有3个类,有以下签名:

abstract class A {}
class B extends A {}
class C extends A {}
Run Code Online (Sandbox Code Playgroud)

然后我有另一个具有以下结构的类:

class MyClass {
    private final A model;

    public MyClass(A m) {
        this.model = m;
    }

    public void doSomething() {
        System.out.println(this.model instanceof C); //TRUE!!
        execute(this.model);
    }

    private void execute(A m) {
        System.out.println("noo");
    }

    private void execute(C m) {
        System.out.println("yay");
    }
}
Run Code Online (Sandbox Code Playgroud)

最后我的主要内容:

public static void main(String... args) {
    C mod = new C();
    MyClass myClass = new …
Run Code Online (Sandbox Code Playgroud)

java inheritance

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

程序检查给定的整数是否具有替代模式

我对C非常陌生,尤其是位操作程序.我正在练习一些并遇到一个问题 - "C程序来检查给定的整数是否具有替代模式".以下是解决方案,我无法准确理解这段代码的作用和问题.替代模式意味着什么?

#include <stdio.h>

void main() {
    int num, x, y, count = 0;

    printf("enter the number:");
    scanf("%d", &num);
    x = num << 1;
    y = x ^ num;
    y = y + 1;

    while ((y / 2) != 0) {
        if (y % 2 != 0) {
            count++;
            break;
        } else {
            y = y / 2;
        }
    }
    if (count) {
        printf("false");
    } else {
        printf("true");
    }
}
Run Code Online (Sandbox Code Playgroud)

c bit-manipulation

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

如何销毁 C# 数据,例如 Dictionary&lt;string, List&lt;Action&lt;object&gt;&gt;&gt;?

我定义了一个对象Dictionary<string, List<Action<object>>>来存储一些要调用的委托方法。如果我想毁掉这本词典。我需要List.Clear()先在字典中调用吗?还是直接打电话Dictionary.Clear就可以了?

这个:

foreach(KeyValuePair<string, List<Action<object>>> kvp in dict)
{
   kvp.Value.Clear();
}

dict.Clear();
dict = null;
Run Code Online (Sandbox Code Playgroud)

或者这个:

dict.Clear();
dict = null;
Run Code Online (Sandbox Code Playgroud)

c# delegates dictionary

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

如何计算C中数字的位数?

我一直试图解决这个问题,即计算数字的总数,我的代码部分工作.它适用于第一次尝试,但在第二次尝试中,计数增加了先前的计数.请帮忙.

#include<stdio.h>
int main()
{
    int num,x,i,n,count=0;
    scanf("%d",&n);

    for(i=1;i<=n;i++)
    {
        scanf("%d",&num);
        while(num!=0)
        {
            count++;
            num=num/10;
        }
        printf("%d\n",count);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c loops count

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