11、成绩转换
#include <iostream>
using namespace std;
int main(){
int t;
while(cin>>t){
if(t>=90&&t<=100)
cout<<"A"<<endl;
else if(t>=80&&t<=89)
cout<<"B"<<endl;
else if(t>=70&&t<=79)
cout<<"C"<<endl;
else if(t>=60&&t<=69)
cout<<"D"<<endl;
else if(t>=0&&t<=59)
cout<<"E"<<endl;
else
cout<<"Score is error!"<<endl;
}
return 0;
}
12、求第几天
#include <iostream>
using namespace std;
int rn(int year){
if(year%400==0||(year%4==0&&year%100!=0))
return 1;
else
return 0;
}
int main(){
int y,m,d,count;
while(cin>>y>>m>>d){
count=0;
if(rn(y)==1){
if(m==1)
count=d;
else if(m==2)
count=31+d;
else if(m==3)
count=31+29+d;
else if(m==4)
count=31+29+31+d;
else if(m==5)
count=31+29+31+30+d;
else if(m==6)
count=31+29+31+30+31+d;
else if(m==7)
count=31+29+31+30+31+30+d;
else if(m==8)
count=31+29+31+30+31+30+31+d;
else if(m==9)
count=31+29+31+30+31+30+31+31+d;
else if(m==10)
count=31+29+31+30+31+30+31+31+30+d;
else if(m==11)
count=31+29+31+30+31+30+31+31+30+31+d;
else if(m==12)
count=31+29+31+30+31+30+31+31+30+31+30+d;
}
else{
if(m==1)
count=d;
else if(m==2)
count=31+d;
else if(m==3)
count=31+28+d;
else if(m==4)
count=31+28+31+d;
else if(m==5)
count=31+28+31+30+d;
else if(m==6)
count=31+28+31+30+31+d;
else if(m==7)
count=31+28+31+30+31+30+d;
else if(m==8)
count=31+28+31+30+31+30+31+d;
else if(m==9)
count=31+28+31+30+31+30+31+31+d;
else if(m==10)
count=31+28+31+30+31+30+31+31+30+d;
else if(m==11)
count=31+28+31+30+31+30+31+31+30+31+d;
else if(m==12)
count=31+28+31+30+31+30+31+31+30+31+30+d;
}
cout<<count<<endl;
}
return 0;
}
另一种方法:
#include <iostream>
using namespace std;
int rn(int year){
if(year%400==0||(year%4==0&&year%100!=0))
return 1;
else
return 0;
}
int month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(){
int y,m,d,count;
while(cin>>y>>m>>d){
count=0;
if(rn(y)==1)
month[2]=29;
while(m>0){
count+=month[m-1];
m--;
}
cout<<count+d<<endl;
}
return 0;
}
13、求阶乘结果0的个数(找规律)
#include <iostream>
using namespace std;
int fun(int n){
int count=0;
if(n>0&&n<5)
return 0;
else{
while(n>=5){
n=n/5;
count+=n;
}
}
return count;
}
int main(){
int n,count;
while(cin>>n){
count=fun(n);
cout<<count<<endl;
}
return 0;
}
14、怪数
#include <iostream>
using namespace std;
int main(){
int n,sum;
while(cin>>n){
for(int i=1;i<=n;i++){
sum=0;
for(int j=1;j<i;j++){
if(i%j==0)
sum+=j;
}
if(sum==i)
cout<<i<<endl;
}
cout<<endl;
}
return 0;
}
15、abc数字
#include <iostream>
using namespace std;
int main(){
int a,b,c,k;
int sum,count;
while(cin>>a>>b>>c){
count=0;
sum=(100*a+10*b+c)*(100*c+10*b+a);
cout<<sum<<" ";
while(sum>0){
k=sum%10;
sum=sum/10;
if(k==a||k==b||k==c)
count++;
}
cout<<count<<endl;
}
return 0;
}
16、奇妙的比值
#include <iostream>
using namespace std;
int main(){
int n,sum;
float res;
while(cin>>n){
sum=0;
for(int i=1;i<=n;i++){
if(n%i==0)
sum+=i;
}
res=sum*1.0/n;
printf("%.2f\n",res);
}
return 0;
}
17、T的倍数N(注意使用栈!)
#include <iostream>
using namespace std;
int isTarget(int n,int T){
int tras=0;
int stack[7]={0};
int top=-1;
int temp=n;
tras+=n%10;
n/=10;
while(n){
stack[++top]=n%10;
n/=10;
}
while(top!=-1){
tras=tras*10+stack[top];
top--;
}
if((double)tras/(double)temp==T)
return 1;
else
return 0;
}
int main(){
int t;
while(cin>>t){
for(int i=1;i<=1000000;i++){
if(i%10==7&&isTarget(i,t)==1){
cout<<i<<endl;
break;
}
}
if(i>1000000)
cout<<"No"<<endl;
}
return 0;
}
18、三角形(注意分成两部分!)
#include <iostream>
using namespace std;
int main(){
int s,n;
while(cin>>s>>n){
for(int i=0;i<n;i++){
for(int j=0;j<i;j++){
if(s==9){
cout<<s<<" ";
s=1;
}else{
cout<<s<<" ";
s++;
}
}
//对角线上的元素
if(s==9){
cout<<s<<endl;
s=1;
}else{
cout<<s<<endl;
s++;
}
}
cout<<endl;
}
return 0;
}
19、字符串处理(不会处理!!!)
#include <iostream>
using namespace std;
int main(){
int n,count,temp;
int a[100];
int key;
while(cin>>n){
count=1;
for(int i=0;i<n;i++){
cin>>a[i];
}
key=a[0];
temp=1;
for(int i=1;i<n;i++){
if(a[i]==a[i-1])
count++;
else{
if(count>temp){
temp=count;
key=a[i-1];
count=1;
}else
count=1;
}
}
if(count>temp){
temp=count;
key=a[i-1];
}
cout<<key<<" "<<count<<endl;
}
return 0;
}
20、公式求解
#include <iostream>
using namespace std;
int main(){
int a,b,x,y;
while(cin>>a>>b){
if(a==0&&b==0)
break;
for(x=1;x<=100;x++){
for(y=1;y<=100;y++){
if((a*a+x*x)==(b*b+y*y))
cout<<x<<" "<<y<<endl;
}
}
cout<<endl;
}
return 0;
}