1001 害死人不偿命的(3n+1)猜想
#include
int Callatz(int N){
int count=0;
while(N!=1){
if(N%2==1){
N=(3*N+1)/2;
count++;
}
else if(N%2==0){
N=N/2;
count++;
}
}
return count;
}
int main(){
int m,cnt=0;
scanf("%d",&m);
cnt=Callatz(m);
printf("%d",cnt);
return 0;
}
1002 写出这个数
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
#include
#include
#include
using namespace std;
string ch[10]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
int main(){
int sum=0;
string str;
while(cin>>str){
for(int i=0;i<str.size();i++)
sum+=str[i]-'0';
if(sum/100==0&&sum%100/10==0)
cout<<ch[sum%100%10]<<endl;
else if(sum/100==0&&sum%100/10!=0)
cout<<ch[sum%100/10]<<" "<<ch[sum%10]<<endl;
else
cout<<ch[sum/100]<<" "<<ch[sum%100/10]<<" "<<ch[sum%10]<<endl;
}
return 0;
}
1003 我要通过!
#include
#include
#include
using namespace std;
int main(){
int n;
cin>>n;
while(n--){
string s;
cin>>s;
int left=0,right=0,mid=0,p=0,t=0;
for(int i=0;i<s.size();i++){
if(s[i]=='A'&&p==0&&t==0){
left++;
continue;
}
if(s[i]=='P'){
p++;continue;
}
if(s[i]=='A'&&p==1&&t==0){
mid++;continue;
}
if(s[i]=='T'&&mid>=1){
t++;continue;
}
if(s[i]=='A'&&p==1&&t==1){
right++;continue;
}
else break;
}
if(p==1&&t==1&&left*mid==right)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return 0;
}
1004 成绩排名
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
#include
#include
#include
using namespace std;
struct Student{
string name;
string num;
int score;
};
int main(){
int n;
while(cin>>n){
Student s[n];
int nin=0,nax=0;
for(int i=0;i<n;i++){
cin>>s[i].name>>s[i].num>>s[i].score;
if(s[i].score>s[nax].score)
nax=i;
if(s[i].score<s[nin].score)
nin=i;
}
cout<<s[nax].name<<" "<<s[nax].num<<endl;
cout<<s[nin].name<<" "<<s[nin].num<<endl;
}
return 0;
}
**1006 换个格式输出整数**
```cpp
#include
#include
#include
using namespace std;
int main(void){
int n;
while(cin>>n){
int bai=n/100,shi=n%100/10,ge=n%10;
for(int i=0;i<bai;i++)
cout<<'B';
for(int i=0;i<shi;i++)
cout<<'S';
for(int i=0;i<ge;i++)
cout<<i+1;
cout<<endl;
}
return 0;
}
1005 继续(3n+1)猜想
#include
#include
#include
using namespace std;
int arr[10000];
bool cmp(int a,int b){
return a>b;
}
int main(){
int k,n,flag=0;
cin>>k;
vector<int> v(k);
for(int i=0;i<k;i++){
cin>>n;
v[i]=n;
while(n!=1){
if(n%2==1) n=3*n+1;
n/=2;
if(arr[n]==1) break;
arr[n]=1;
}
}
sort(v.begin(),v.end(),cmp);
for(int i=0;i<v.size();i++){
if(arr[v[i]]==0){
if(flag==1) cout<<" ";
cout<<v[i];
flag=1;
}
}
return 0;
}
1007 素数对猜想
#include
#include
#include
using namespace std;
bool prime(int n){
for(int i=2;i*i<=n;i++){
if(n%i==0) return false;
}
return true;
}
int main(void){
int n;
cin>>n;
int count=0;
for(int i=5;i<=n;i++){
if(prime(i-2)&&prime(i))
count++;
}
cout<<count;
return 0;
}
1008 数组元素循环右移问题
#include
#include
#include
using namespace std;
int main(void){
int m,n;
cin>>m>>n;
vector<int> a(m);
for(int i=0;i<m;i++)
cin>>a[i];
n%=m;
if(n!=0){
reverse(a.begin(),a.begin()+m);
reverse(a.begin(),a.begin()+n);
reverse(a.begin()+n,a.begin()+m);
}
for(int i=0;i<m-1;i++)
cout<<a[i]<<" ";
cout<<a[m-1]<<endl;
return 0;
}
1009 说反话
#include
#include
using namespace std;
int main() {
stack<string> str;
string s;
while(cin>>s){
str.push(s);
}
cout<<str.top();
str.pop();
while(!str.empty()){
cout<<" "<<str.top();
str.pop();
}
return 0;
}
1010 一元多项式求导
#include
#include
#include
using namespace std;
int main(void){
int a,b;
int flag=0;
while(cin>>a>>b){
if(b!=0){
if(flag==1)
cout<<" ";
cout<<a*b<<" "<<b-1;
flag=1;
}
}
if(flag==0)
cout<<"0 0";
return 0;
}