✎
编程开发网
首页
C语言
C++
面试
Linux
函数
Windows
数据库
下载
搜索
当前位置:
首页
->
AI编程基础
->
c++编程基础
France '98
2014-11-23 21:46:35
·
作者:
·
浏览:
10
标签:
France
'
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std ;
char str[ 20 ][ 50 ] ;
double val[ 20 ][ 20 ] ;
double dp[ 20 ][ 5 ] ;
int main()
{
for( int i = 0 ; i < 16 ; ++i )
{
scanf( "%s" , str[ i ] ) ;
}
for( int i = 0 ; i < 16 ; ++i )
{
for( int j = 0 ; j < 16 ; ++j )
{
scanf( "%lf" , &val[ i ][ j ] ) ;
val[ i ][ j ] /= 100 ;
}
}
memset( dp , 0 , sizeof( dp ) ) ;
for( int i = 0 ; i < 16 ; ++i )
{
dp[ i ][ 0 ] = 1 ;
}
int len = 1 ;
for( int i = 1 ; i <= 4 ; ++i )
{
for( int j = 0 ; j < 16 ; ++j )
{
int st ;
if( ( j / len ) & 1 )
{
st = ( j / len - 1 ) * len ;
}
else
{
st = ( j / len + 1 ) * len ;
}
for( int k = st ; k < st + len ; ++k )
{
dp[ j ][ i ] += dp[ j ][ i - 1 ] * dp[ k ][ i - 1 ] * val[ j ][ k ] ;
}
}
len = len * 2 ;
}
for( int i = 0 ; i < 16 ; ++i )
{
printf( "%-11sp=%.2lf%%\n" , str[ i ] , dp[ i ][ 4 ]* 100 ) ;
}
//system( "pause" ) ;
return 0;
}