描述 |
---|
输出一个正整数的最高位和最低位 |
输入 |
多组案例。一个正整数n,表示案例的数量。(n<=20) 每组案例由一个正整数a组成。(10<=a<=100000000) |
输出 |
针对每组案例,输出两个一位数,分别是a的最高位和最低位,这两个数字之间用一个空格字符相隔。 每组案例输出完都要换行。 |
样例输入 复制样例 |
2 12345 1000 |
样例输出 |
1 5 1 0
|
HINT |
解:
法1:pow或直接计算,利用10^N>a,得到a的位数N-1;
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int a;
cin>>a;
int lg=1;
for(;;lg++)
{
if(pow(10,lg)>a)
{
break;
}
}
int temp=a%10;
for(int j=1;j<lg;j++)
{
a=a/10;
}
cout<<a<<" "<<temp<<endl;
}
return 0;
}
No pow
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int a;
cin>>a;
int lg=1;
int temp10=1;
for(;;lg++)
{
temp10*=10;
if(temp10>a)
{
break;
}
}
int temp=a%10;
for(int j=1;j<lg;j++)
{
a=a/10;
}
cout<<a<<" "<<temp<<endl;
}
return 0;
}
法二:string(偷懒QWQ)
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
string a;
cin>>a;
int end=a.size();
cout<<a[0]<<" "<<a[end-1]<<endl;
}
return 0;
}