小编Lan*_*ter的帖子

为什么pow功能会给我一个答案?

我有一个程序,读取5个整数,并使用这些数字给出各种计算的结果.我在计算几何平均数时遇到了特别的麻烦.我知道你应该将这些数字相乘并取结果的第n个根.

我的代码如下(假设所有#includes和main方法都是正确的.):

int num1, num2, num3, num4, num5;

cout << "Enter five integers: \n";
cin >> num1 >> num2 >> num3 >> num4 >> num5;

double gMean = pow((num1 * num2 * num3 * num4 * num5), (1.0/5.0));
cout << "Geometric mean     = " << gMean << endl;
Run Code Online (Sandbox Code Playgroud)

此代码适用于较小的数字,例如1,2,3,4,5,但是当我输入大数字时,它会给我nan作为答案.

我需要在其中工作的数字是:85,43,95,100和78

我的问题是:为什么当放入较大的数字时,pow()函数会给我nan作为答案,但是当输入小数字时返回正确的答案?

编辑:第一个问题回答.既然我知道我有溢出问题,我该如何解决呢?

c++

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

RecyclerView 首次加载时不显示数据

我正在尝试使用 LiveData 从本地数据库加载数据列表。

视图.xml

... // constraint layout surrounds this
<androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recyclerView_cities"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp" />
Run Code Online (Sandbox Code Playgroud)

这是我在片段中设置回收器视图的方法:

val citiesAdapter = CitiesAdapter(cityRepository)
with(view.recyclerView_cities) {
    layoutManager = LinearLayoutManager(activity)
    setHasFixedSize(true)
    adapter = citiesAdapter
}
cityRepository.getAllCities().observe(this, Observer { list ->
    citiesAdapter.submitList(list)
})
Run Code Online (Sandbox Code Playgroud)

适配器:

class CitiesAdapter(private val repository: CityRepository) : ListAdapter<City, CitiesAdapter.CardViewHolder>(CityCallback()) {
    class CityCallback: DiffUtil.ItemCallback<City>() {
        override fun areItemsTheSame(oldItem: City, newItem: City): Boolean {
            return oldItem.city == newItem.city && oldItem.stateId == newItem.stateId
        }

        override fun areContentsTheSame(oldItem: City, newItem: City): Boolean {
            return …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-recyclerview

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

标签 统计

android ×1

android-recyclerview ×1

c++ ×1

kotlin ×1