永发信息网

急求一Java程序,根据每几秒出生率死亡率迁移率计算每年总人口数

答案:2  悬赏:0  手机版
解决时间 2021-02-03 15:55
  • 提问者网友:不爱我么
  • 2021-02-03 03:54
急求一Java程序,根据每几秒出生率死亡率迁移率计算每年总人口数
最佳答案
  • 五星知识达人网友:封刀令
  • 2021-02-03 05:17
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Calculate {

public static void main(String[] args) {
// TODO Auto-generated method stub
long nowNum = 312032486;
int birth = 7;
int death = 13;
int immigrant = 45;
long birthSum = 0;
long deathSum = 0;
long immigrantSum = 0;
for(int i=1;i<=5;i++)
{
long time = i*365*24*60*60;
birthSum = (long)((double)time / (double)birth);
deathSum = (long)((double)time / (double)death);
immigrantSum = (long)((double)time / (double)immigrant);
nowNum = nowNum + birthSum - deathSum + immigrantSum;
System.out.println(nowNum);
}
}
}追问编译可以通过,但是运行不了追答public static void main(String[] args) {
long nowNum = 312032486;   // 起始年人数初始值
int birth = 7;                            // 出生周期(s)
int death = 13;                        // 死亡周期(s)
int immigrant = 45;                  // 移民周期(s)
long birthSum = 0;                  // 出生人数
long deathSum = 0;                // 死亡人数
long immigrantSum = 0;          // 移民人数


// 循环计算从第一年至第五年每年的人数变化
for(int i=1;i<=5;i++)
{
long time = i*365*24*60*60;                           // 因为年限的变化导致时间长度变化,由i控制
birthSum = (long)((double)time / (double)birth);                    // 该时间长度下的出生人数
deathSum = (long)((double)time / (double)death);                // 该时间长度下的死亡人数
immigrantSum = (long)((double)time / (double)immigrant);   // 该时间长度下的移民人数
nowNum = nowNum + birthSum - deathSum + immigrantSum;     // 计算该年人数(注意此处是以年为跨度的)
System.out.println(nowNum);                               // 按行将该年的人数输出到屏幕上
}
}
}
***************************************************
下面是计算结果的截图:

5年之内每年的计算结果就这样展示出来了。你没说原因,这里我不太明白你为什么编译过了却没有结果,希望你再调试一下,有问题可以再聊。
全部回答
  • 1楼网友:夜风逐马
  • 2021-02-03 06:47
public class Test1 {
    public static void getPerFiveYearPopulation() {
        int totalTime=5*365*24*60*60;
        int increasePopulation=totalTime/7+totalTime/45-totalTime/13;
        int totalPopulation=increasePopulation+312023486;
        System.out.println(totalPopulation);
    }
    public static void main(String[] args) {
        getPerFiveYearPopulation();
    }
}追问是接下来五年的,不是五年之后的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯