1.一个十进制正整数转换成二进制有多少个1
#include<iostream>
using namespace std;
int main(){
int x;
cin>>x;
int Count=0;
while(x!=0){
if(x%2==1) Count++;
x/=2;
}
cout<<Count;
}
2.约瑟夫环问题
#include<iostream>
#include<queue>
#include<fstream>
#include<cstdlib>
using namespace std;
int main(){
queue<int> q;
ifstream infile("in.txt");
string s;
getline(infile,s);
int n=atoi((char*)s.data());
for(int i=1;i<=n;i++){
q.push(i);
}
int m=4;
while(!q.empty()){
for(int i=1;i<m;i++){
int k=q.front();
q.pop();
q.push(k);
}
cout<<q.front();
q.pop();
}
}
3.从文件读入 2个矩阵,输出矩阵相乘后的矩阵
#include<iostream>
#include<fstream>
#include<string>
#include<cstdlib>
using namespace std;
int matrix1[3][3];
int matrix2[3][2];
int matrix3[3][2];
int main(){
ifstream infile("in.txt");
ofstream outfile("out.txt");
string s;
for(int i=0;i<3;i++){
getline(infile,s);
int j;
for(j=0;j<2;j++){
int pos=s.find(" ");
matrix1[i][j]=atoi((char*)s.substr(0,pos).data());
s=s.substr(pos+1);
}
matrix1[i][j]=atoi((char*)s.data());
}
for(int i=0;i<3;i++){
getline(infile,s);
int j;
for(j=0;j<1;j++){
int pos=s.find(" ");
matrix2[i][j]=atoi((char*)s.substr(0,pos).data());
s=s.substr(pos+1);
}
matrix2[i][j]=atoi((char*)s.data());
}
infile.close();
for(int i=0;i<3;i++){
for(int j=0;j<2;j++){//前两个for为最终矩阵的每一个位置
int temp=0;
for(int k=0;k<3;k++){
temp+=matrix1[i][k]*matrix2[k][j];//
}
matrix3[i][j]=temp;
}
}
for(int i=0;i<3;i++){
for(int j=0;j<2;j++){
outfile<<matrix3[i][j]<<" ";
}
outfile<<endl;
}
}
4.符串问题。从文件中读入几行英文句子。输出单词,行号,并按单词字典索
引。
#include<iostream>
#include<fstream>
#include<map>
#include<cstdlib>
#include<string>
using namespace std;
map<string,int> m;
//写成计数了,不过字典索引也不难,懒得改了
void Count(string key){
if(m.find(key)==m.end()){//没找到这个key
m.insert(pair<string,int>(key,1));
}
else{//已经存在这个key
cout<<"存在"<<key<<":"<<m[key]<<endl;
m[key]=m[key]+1;
}
}
int main(){
string s;
ifstream infile("in.txt");
getline(infile,s);
int n=atoi((char*)s.data());
for(int i=0;i<n;i++){
getline(infile,s);
while(s.size()>0){
cout<<s<<endl;
if(s.find(" ")!=string::npos){//
int pos=s.find(" ");
string key=s.substr(0,pos);
Count(key);
s=s.substr(pos+1);
}
else{
string key=s;
Count(key);
s=s.substr(s.size());//为了能跳出循环
}
}
}
map<string,int>::iterator it;
for(it=m.begin();it!=m.end();it++){//
cout<<it->first<<" "<<it->second<<endl;
}
}