解题思路:
floyed算法
注意事项:
参考代码:
import java.text.NumberFormat;
import java.util.Scanner;
public class llq1 {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
int ori_number = 0;//需要改变的数字
int chan_number = 0;//改变后的数字
String number = null;//原始数据
int t;
int can[][] = new int[10][10];//创建图
number = input.next();
t = input.nextInt();
while (t--!=0){
ori_number = input.nextInt();
chan_number = input.nextInt();
can[ori_number][chan_number] = 1; //初始化有向图
}
for (int k = 0; k < 10; k++)
for (int j = 0; j < 10; j++)
for (int i = 0; i < 10; i++)
if (i != j && j != k && i != k)
if (can[i][k] == 1 && can[k][j] == 1)//创建新的变换规则
can[i][j] = 1;
double sum = 1;
for (int i = 0; i < number.length(); i++){
int n1 = number.charAt(i) - '0';
int change = 1;
for (int j = 0; j < 10; j++)//计算每一个变换数字的变换规则个数
if (can[n1][j] == 1 && n1 != j)
change++;
sum *= change;//总的变换次数
}
NumberFormat nf = NumberFormat.getInstance();//格式化输出,非科学技术表示
nf.setMaximumFractionDigits(20);
nf.setGroupingUsed(false);
System.out.print(nf.format(sum));
}
}
0.0分
1 人评分
多输入输出练习1 (C语言代码)浏览:1219 |
妹子杀手的故事 (C语言代码)浏览:1297 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:588 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:1052 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:568 |
WU-格式化数据输出 (C语言代码)浏览:1818 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:582 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:612 |
C二级辅导-求偶数和 (C语言代码)浏览:707 |
Quadratic Equation (C语言代码)浏览:1034 |