1021 个位数统计
#include
#include
#include
using namespace std;
int main(){
string s;
int a[10]={0};
cin>>s;
for(int i=0;i<s.length();i++)
a[s[i]-'0']++;
for(int i=0;i<10;i++)
if(a[i]!=0)
cout<<i<<":"<<a[i]<<endl;
return 0;
}
1022 D进制的A+B
#include
#include
#include
using namespace std;
int main(){
int a,b,d;
cin>>a>>b>>d;
int t=a+b;
if(t==0){
cout<<t;return 0;
}
int i=0,result[100];
while(t!=0){
result[i++]=t%d;
t=t/d;
}
for(int j=i-1;j>=0;j--)
cout<<result[j];
return 0;
}
1023 组个最小数
#include
using namespace std;
int main(){
int a[10]={0};
for(int i=0;i<10;i++)
cin>>a[i];
for(int i=1;i<10;i++){
if(a[i]!=0){
cout<<i;
a[i]--;
break;
}
}
for(int i=0;i<10;i++)
for(int j=0;j<a[i];j++)
cout<<i;
return 0;
}
1024 科学计数法
#include
using namespace std;
int main(){
string s;
cin>>s;
int i=0;
while(s[i]!='E') i++;
string t=s.substr(1,i-1);//E之前的小数
int n=stoi(s.substr(i+1));//指数
if(s[0]=='-') cout<<"-";
if(n<0){
cout<<"0.";
for(int i=0;i<abs(n)-1;i++)
cout<<'0';
for(int j=0;j<t.length();j++)
if(t[j]!='.') cout<<t[j];
}else{
cout<<t[0];
int j,cnt;
for( j=2,cnt=0;j<t.length()&&cnt<n;j++,cnt++)
cout<<t[j];
if(j==t.length())
for(int i=0;i<n-cnt;i++)
cout<<'0';
else{//仍是小数
cout<<'.';
for(int i=j;i<t.length();i++)
cout<<t[i];
}
}
return 0;
}
1025 反转链表
#include
#include
#include
#define N 100005
using namespace std;
int main(){
int first,n,k;
cin>>first>>n>>k;
int data[N],next[N],list[N];
int temp;
for(int i=0;i<n;i++){
cin>>temp;
cin>>data[temp]>>next[temp];
}
int sum=0;
while(first!=-1){
list[sum++]=first;
first=next[first];
}
for(int i=0;i<sum-(sum%k);i+=k)
reverse(begin(list)+i,begin(list)+i+k);
for(int i=0;i<sum-1;i++)
printf("%05d %d %05d\n",list[i],data[list[i]],list[i+1]);
printf("%05d %d -1\n",list[sum-1],data[list[sum-1]]);
return 0;
}
1026 程序运行时间
#include
using namespace std;
int main(){
int a,b;
cin>>a>>b;
int t=(b-a+50)/100;//四舍五入 加0.5
printf("%02d:%02d:%02d",t/3600,t%3600/60,t%60);
return 0;
}
1027 打印沙漏
#include
using namespace std;
int main(){
int n;
char c;
cin>>n>>c;
int row=0;
for(int i=0;i<n;i++){
if(i*(i+2)*2+1>n){
row=i-1;break;
}
}
for(int i=row;i>=1;i--){
for(int j=row-i;j>=1;j--)
cout<<" ";
for(int j=2*i+1;j>=1;j--)
cout<<c;
cout<<endl;
}
for(int i=0;i<row;i++)
cout<<" ";
cout<<c<<endl;
for(int i=1;i<=row;i++){
for(int j=row-i;j>=1;j--)
cout<<" ";
for(int j=i*2+1;j>=1;j--)
cout<<c;
cout<<endl;
}
cout<<(n-((row+2)*row*2+1));
return 0;
}
1028 人口普查
#include
using namespace std;
int main(){
int n,cnt=0;
cin>>n;
string name,birth,maxname,minname,maxbirth="1814/09/06",minbirth="2014/09/06";
for(int i=0;i<n;i++){
cin>>name>>birth;
if(birth>="1814/09/06"&&birth<="2014/09/06"){
cnt++;
if(birth>=maxbirth){
maxname=name;
maxbirth=birth;
}
if(birth<=minbirth){
minname=name;
minbirth=birth;
}
}
}
cout<<cnt;
if(cnt!=0)
cout<<" "<<minname<<" "<<maxname;
return 0;
}
1029 旧键盘
#include
using namespace std;
int main(){
string s1,s2,ans;
cin>>s1>>s2;
for(int i=0;i<s1.length();i++)
if(s2.find(s1[i])==string::npos&&ans.find(toupper(s1[i]))==string::npos)
ans+=toupper(s1[i]);
cout<<ans;
return 0;
}
1030 完美数列
#include
#include
#include
using namespace std;
int main(){
int n;long long p;
scanf("%d%lld",&n,&p);
vector<int> v(n);
for(int i=0;i<n;i++)
cin>>v[i];
sort(v.begin(),v.end());
int result=0,num=0;
for(int i=0;i<n;i++){
for(int j=i+result;j<n;j++){
if(v[j]<=v[i]*p){
num=j-i+1;
if(result<num)
result=num;
}
else break;
}
}
cout<<result;
return 0;
}