UVa 537 人工智能
来源:互联网 发布:linux cut命令详解 编辑:程序博客网 时间:2024/05/29 10:46
/*
* 解题思路:
* 题意比较好理解,就是给出P = U*I 中的两个量求第三个量、 纯靠细心!
* 容易错的点、就每组数据还要再多输出一个空行、最后一组也要!( ps: 如果发现自己WA、多拿几组数据测下看哪里出错、情况就那么几种、试下就行了!)
*/
#include <stdio.h>#include <string.h>int main( ){ int t; int i,j; int total,flag,p,q; int len[ 5 ],r[ 5 ] ,y[ 5 ],vis[ 5 ]; double sum[ 5 ],x[ 5 ]; char c; char ss[ 10 ] = { 'P' , 'U' , 'I' , 'M' , 'm','k','A','V','W'}; char sss[ 5 ][ 100 ]; total = 1; scanf("%d",&t); getchar( ); while( t-- ) { flag = vis[ 0 ] = vis[ 1 ] = 1; p = q = r[ 0 ] = r[ 1 ] = 0; memset( sss , '\0' , sizeof( sss ) ); while( ( c = getchar( ) ) !='\n' ) { if( c == '=' ) flag = 0; else if( !flag && (c == 'W' || c == 'V' || c =='A' ) ) { sss[ q ][ p++ ] = c; flag = 1; len[ q++ ] = p; p = 0; } else if( !flag ) { if( c == '.') { vis[ q ] = 0; r[ q ] = p; } sss[ q ][ p++ ] = c; } } i = 0; x[ 0 ] = x[ 1 ] = 1; memset( y,0,sizeof( y ) ); while( i<2 ) { if( sss[ i ][ len[ i ]-2 ] == 'm' ) x[ i ] = 0.001; else if( sss[ i ][ len[ i ] - 2 ] == 'M' ) x[ i ] = 1000000; else if( sss[ i ][ len[ i ] - 2 ] =='k' ) x[ i ] = 1000; if( sss[ i ][ len[ i ]-1 ] =='A' ) y[ i ] = 6; else if( sss[ i ][ len[ i ]-1 ] =='V' ) y[ i ] = 7; else if( sss[ i ][ len[ i ]-1 ] =='W' ) y[ i ] = 8; i++; } p = 0; while( p<2 ) { sum[ p ] = 0; j=10; if( vis[ p ] ) for( i=0; ( sss[ p ][ i ]<='9' && sss[ p ][ i ] >='0' ) ;i++ ) sum[ p ] = sum[ p ]*j + (sss[ p ][ i ]-'0'); else { for( i=0,j=10;i < r[ p ] ;i++ ) sum[ p ] = sum[ p ] * j +( sss[ p ][ i ] - '0' ); for( i=r[p]+1; ( sss[ p ][ i ]<='9' && sss[ p ][ i ] >='0' );i++,j*=10 ) sum[ p ] = sum[ p ] + (sss[ p ][ i ]-'0')*1.0/j; } sum[ p ] = sum[ p ] * x[ p ]; p++; } printf("Problem #%d\n",total++ ); if(( y[ 0 ] == 6 && y[ 1 ] == 7 ) || (y[ 0 ] == 7 && y[ 1 ] == 6) ) printf("P=%.2lfW\n", sum[ 0 ] *sum[ 1 ] ); else if( y[ 0 ] == 6 && y[ 1 ] == 8 ) printf("U=%.2lfV\n",sum[ 1 ]/sum[ 0 ] ); else if( y[ 0 ] == 7 && y[ 1 ] == 8) printf("I=%.2lfA\n",sum[ 1 ]/sum[ 0 ] ); else if( y[ 0 ] == 8 && y[ 1 ] ==6 ) printf("U=%.2lfV\n",sum[ 0 ]/sum[ 1 ] ); else if( y[ 0 ] == 8 && y[ 1 ] == 7 ) printf("I=%.2lfA\n",sum[ 0 ]/sum[ 1 ] ); puts(""); } return 0;}
0 0
- UVA 537 人工智能
- UVa 537 人工智能
- UVa OJ 537 人工智能
- uva 537 人工智能
- 《人工智能》
- 人工智能!
- 人工智能
- 人工智能
- 人工智能
- 人工智能
- 人工智能
- 人工智能
- 人工智能
- 人工智能
- 人工智能
- 人工智能
- 人工智能
- 人工智能
- Android 编译重要参数 LOCAL_MODULE_TAGS
- 为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈
- 自己制作ssl证书:自己签发免费SSL证书,为nginx生成自签名ssl证书
- 理解inode
- 最近写树的递归绑定写腻了,发现一篇好文章
- UVa 537 人工智能
- 2014-1-23 First Day Auto Transport
- OCP-1Z0-053-200题-15题-15
- mysql清空表
- LCD驱动中pixclock的计算
- 动态生成java类,来自bao110908大神
- 64位Debian-7安装WPS
- android.graphics.Camera 实现简单的3D效果
- OCP-1Z0-053-200题-16题-98