T94. 计票统计
T95. 人民币转换
T96. 表示数字
#include <iostream>
#include <string>
using namespace std;
int main ( )
{
string s;
while ( cin>> s)
{
for ( int i= 0 ; i< s. size ( ) ; i++ )
{
if ( s[ i] >= '0' && s[ i] <= '9' && ( i== 0 || s[ i- 1 ] < '0' || s[ i- 1 ] > '9' ) )
{
s= s. substr ( 0 , i) + "*" + s. substr ( i) ;
i++ ;
}
if ( s[ i] >= '0' && s[ i] <= '9' && ( i+ 1 == s. length ( ) || s[ i+ 1 ] < '0' || s[ i+ 1 ] > '9' ) )
{
s= s. substr ( 0 , i+ 1 ) + "*" + s. substr ( i+ 1 ) ;
i++ ;
}
}
cout << s << endl;
}
return 0 ;
}
T98. 自动售货系统
T102. 字符统计
#include <iostream>
#include <string>
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;
bool cmp ( pair< char , int > a, pair< char , int > b) {
if ( a. second!= b. second)
{
return a. second > b. second;
}
else
{
return a. first < b. first;
}
}
int main ( )
{
string s;
while ( cin>> s)
{
string res;
vector< pair< char , int >> v;
unordered_map< char , int > m;
for ( auto c : s)
{
if ( c== ' ' || ( c>= 48 && c<= 57 ) || ( c>= 65 && c<= 90 ) || ( c>= 97 && c<= 122 ) )
{
m[ c] ++ ;
}
}
for ( auto i : m)
{
v. push_back ( { i. first, i. second} ) ;
}
sort ( v. begin ( ) , v. end ( ) , cmp) ;
for ( auto j : v)
{
res + = j. first;
}
cout<< res<< endl;
}
return 0 ;
}
T103. Redraiment的走法
#include <iostream>
using namespace std;
int main ( )
{
int n;
while ( cin>> n)
{
int a[ 65535 ] ;
int dp[ 65535 ] ;
for ( int i= 0 ; i< n; i++ )
cin>> a[ i] ;
dp[ 0 ] = 1 ;
int out= 0 ;
for ( int i= 1 ; i< n; i++ )
{
dp[ i] = 1 ;
for ( int j= 0 ; j< i; j++ )
{
if ( a[ i] > a[ j] )
dp[ i] = max ( dp[ i] , dp[ j] + 1 ) ;
}
if ( dp[ i] > out)
out= dp[ i] ;
}
cout<< out<< endl;
}
return 0 ;
}
T105. 记负均正II
#include <iostream>
using namespace std;
int main ( )
{
int num;
int count= 0 ;
int count1= 0 ;
double sum= 0.0 ;
while ( cin>> num)
{
if ( num< 0 )
{
count++ ;
}
else
{
count1++ ;
sum+ = num;
}
}
cout<< count<< endl;
cout<< fixed;
cout. precision ( 1 ) ;
cout<< ( double ) sum/ count1<< endl;
return 0 ;
}
T107. 求解立方根
#include <iostream>
using namespace std;
int main ( )
{
double n;
double i;
bool flag;
while ( cin >> n)
{
flag = 0 ;
if ( n < 0 )
{
n = - n;
flag = 1 ;
}
for ( i = 0 ; i* i* i <= n; i= i+ 0.01 ) ;
if ( flag== 0 )
{
cout << fixed;
cout. precision ( 1 ) ;
cout << i << endl;
}
else
{
cout << fixed;
cout. precision ( 1 ) ;
cout << - i << endl;
}
}
return 0 ;
}
T108. 求最小公倍数
#include <iostream>
using namespace std;
int gcd ( int a, int b)
{
return ( b == 0 ) ? a : gcd ( b, a% b) ;
}
int main ( )
{
int a;
int b;
int out = 0 ;
while ( cin >> a >> b)
{
out = a * b / gcd ( a, b) ;
}
cout << out << endl;
return 0 ;
}