**8.17(金融风暴)银行会互相借款……银行的总资产是它当时的余款减去它欠其他银行的贷款。如果一个银行的总资产在某个限以下,那么这个银行是不安全的。编写程序,找出所有不安全银行
题目
题目描述
**8.17(金融风暴)银行会互相借款……银行的总资产是它当时的余款减去它欠其他银行的贷款。
图是五个银行的状况图,当前银行的余额分别是2 500万美元、17 500万美元、7 500万美元、18 100万美元,从结点1到结点2方向表示银行1借给银行2共计4 000万美元
原图请参见:(本文章撰写时已经很晚,不方便拍照)
https://blog.csdn.net/jxh1025_/article/details/110849395
如果一个银行的总资产在某个限度以下,那么这个银行是不安全的。如果贷款不能返还,则借款方不能将这个贷款计入总资产,导致借贷方总资产也可能在限定以下,那么它也是不安全的
编写程序,找出所有不安全银行
程序读入如下输入:n银行个数 limit银行安全最小总资产
n行输入(n个银行,银行id从0到n-1):
每行第一个:该行余额
每行第二个:资金借入该行的银行id
每行第三个:从这个银行借款的银行id
每行第四个:上面这家银行借了多少钱
每行第五个:从这个银行借款的银行id
每行第六个:上面这家银行借了多少钱
5 201
25 2 1 100.5 4 320.5
125 2 2 40 3 85
175 2 0 125 3 75
75 1 0 125
181 1 2 175
银行3的总资产是75+125 < 201,所以银行3是不安全的
如果银行3不安全,则银行1资产从125+40+85降为125+40,所以银行1也不安全
程序输出应该是:
Unsafe banks are 3 1
提示:使用一个二维数组borrowers来表示贷款,borrowers[i][j]表明银行i贷款给银行j贷款额。一旦银行j不安全则将borrowers[i][j]置空
破题
- 主方法:接收用户从控制台的输入,并赋值给新建的两个int对象(分别用于保存银行个数和最低安全资产数)
- 主方法:声明一个二维数组borrowers,表示贷款,长度为 银行个数n * 银行个数n
- 主方法:创建一个临时double变量temp用于保存数值
- 主方法:赋值
- 主方法:输出不含不安全银行id的部分
- 主方法:循环继续找并输出id
代码
import java.util.Scanner;
public class Test8_17 {
public static void main(String[] args) {
//1. 主方法:接收用户从控制台的输入,并赋值给新建的两个int对象(分别用于保存银行个数和最低安全资产数)
Scanner input = new Scanner(System.in);
System.out.print("请输入银行数量和银行安全的最低资产数:");
int n = input