华师一附中OI组
标题:
基础循环训练题
[打印本页]
作者:
admin
时间:
2018-4-21 12:03
标题:
基础循环训练题
一、计数循环 注意找如下数列的规律和地推关系,求出每个数列前10项。(至于求和,就只要改进一点点了)这主要是考大家找规律的水平
1、1 2 3 4 5 6 7 8 9 10
2、1 2 4 8 16 32
3、1 3 5 7 9
4、1 10 100 1000 10000
5、1 11 111 1111 11111
6、1 12 123 1234 12345
7、10 9 8 7 6 5
8、1 1/2 1/3 1/4 1/5
9、1 4 9 16 25
10、1 2 4 7 11 16
11、1! 2! 3! 4!
12、1! 3! 5! 7!
13、 1 -1 1 -1 1 -1 1 -1
14、1 -2 3 -4 5 -6
15、1 1 2 3 5 8
二、条件判断 主要训练终止条件的书写能力
1、判断数字的位数
2、判断回文数
3、比x大的最小完全平方数
4、不大于x的最大完全平方数
5、判断质数
6、辗转相除求最大公约数
三、循环判断(穷举法)
1、明7暗7
2、韩信点兵
3、10个数中最大数
4、约数个数
5、含有2的数
四、多重循环
1、百鸡问题
2、水仙花数
3、勾股数
注意
1、第N项 (计数条件)
2、小于x的最大数
3、大于x的最小数
作者:
admin
时间:
2018-4-21 17:24
canton数 二阶等差数列 数金币
作者:
admin
时间:
2018-7-8 17:09
经典训练题
1、cantor表
2、回文日期
3、金币
4、地雷
作者:
admin
时间:
2018-7-10 20:55
#include<iostream>
using namespace std;
int a,i,s;
int main()
{
cout<<"\n====T1=======\n";
s=0;
for (i=1; i<=10; i++)
{
a=i;
s=s+a;
}
cout<<s;
cout<<"\n====T2=======\n";
s=a=1;
for (i=2; i<=10; i++)
{
a=a*2;
s=s+a;
}
cout<<s;
cout<<"\n====T3=======\n";
s=0;
for (i=1; i<=10; i++)
{
a=2*i-1;
s=s+a;
}
cout<<s;
cout<<"\n====T4=======\n";
s=a=1;
for (i=2; i<=10; i++)
{
a=a*10;
s=s+a;
}
cout<<s;
cout<<"\n====T5=======\n";
s=a=1;
for (i=2; i<=10; i++)
{
a=a*10+1;
s=s+a;
}
cout<<s;
cout<<"\n====T6=======\n";
s=a=1;
for (i=2; i<=10; i++)
{
a=a*10+i;
s=s+a;
}
cout<<s;
cout<<"\n====T7=======\n";
s=0;
for (i=10; i>=1; i--)
{
a=i;
s=s+a;
}
cout<<s;
cout<<"\n====T7-2=======\n";
s=0;
for (i=1; i<=10; i++)
{
a=11-i;
s=s+a;
}
cout<<s;
cout<<"\n====T10=======\n";
s=a=1;
for (i=2; i<=10; i++)
{
a=a+(i-1);
s=s+a;
}
cout<<s;
cout<<"\n====T11=======\n";
s=a=1;
for (i=2; i<=10; i++)
{
a=a*i;
s=s+a;
}
cout<<s;
cout<<"\n====T12=======\n";
s=a=1;
for (i=2; i<=10; i++)
{
a=a*(2*i-2)*(2*i-1);
s=s+a;
}
cout<<s;
}
复制代码
作者:
JASONZHU
时间:
2018-7-10 23:07
已阅已阅
作者:
郑子川
时间:
2018-7-15 22:09
本帖最后由 郑子川 于 2018-7-16 14:44 编辑
<div class="blockcode"><blockquote>#include <iostream>
using namespace std;
int a,b,c;
float d;
int main()
{
cout<<"/////////6/////////"<<endl;
b=a=1;
for (c=2; c<=10; c++)
{
a=a*10+c;
b=b+a;
}
cout<<b;
cout<<endl<<"/////////7/////////"<<endl;
b=a=0;
for (c=10; c>=1; c--)
{
b=c;
a=b+a;
}
cout<<a;
return 0;
}
复制代码
作者:
郑子川
时间:
2018-7-15 22:11
#include <iostream>
using namespace std;
int a,b,c;
float d;
cout<<endl<<"/////////8/////////"<<endl;
for(c=1; c<=10; c++)
{
d=d+1.0/c;
}
cout<<d;
cout<<endl<<"/////////9/////////"<<endl;
a=b=0;
for(c=1; c<=20; c++)
{
b=c;
a=a+b*b;
}
cout<<a;
cout<<endl<<"/////////10/////////"<<endl;
b=a=1;
for (c=2; c<=10; c++)
{
a=a+(c-1);
b=b+a;
}
cout<<b;
return 0;
}
复制代码
作者:
郑子川
时间:
2018-7-16 15:26
#include <iostream>
using namespace std;
int a,b,c;
int main()
{
cout<<"/////////11/////////"<<endl;
a=b=1;
for(c=2; c<=10; c++)
{
b=b*c;
a=a+b;
}
cout<<a;
cout<<endl<<"/////////12/////////"<<endl;
b=a=1;
for (c=2; c<=7; c++)
{
a=a*(2*c-2)*(2*c-1);
b=b+a;
}
cout<<b;
return 0;
}
复制代码
作者:
JASONZHU
时间:
2018-7-16 22:22
数字位数
#include <iostream>
using namespace std;
int a,b;
int main()
{
cout<<"\n========weishu========\n";//位数
cin>>a;
while (a>0)
{
a=a/10;
b++;
}
cout<<b;
return 0;
}
复制代码
作者:
JASONZHU
时间:
2018-7-16 22:24
质数(素数)
#include <iostream>
#include <cmath>
using namespace std;
int a,x;
bool b;
int main()
{
cout<<"\n========zhishu========\n";//质数
cin>>x;
b=true;a=2;//有弊端:不能判断1,0!
while(a<=sqrt(x) && b)
{
if(x%a==0) b=false;
else a++;
}
if(b)cout<<"YES";
else cout<<"NO";
return 0;
}
复制代码
作者:
JASONZHU
时间:
2018-7-16 22:57
最大公因数(辗转相除法)
#include<iostream>
using namespace std;
int a,b,s;
int main()
{
cin>>a>>b;
s=a%b;
while(s!=0)
{
a=b;
b=s;
s=a%b;
}
cout<<b;
return 0;
}
复制代码
作者:
JASONZHU
时间:
2018-7-18 23:16
水仙花数:way1 与 way2
#include<iostream>
using namespace std;
int a,b,c,n;
int main()
{
cout<<"======way 1======"<<endl;
for(n=100; n<=999; n++)
{
a=n/100%10;
b=n/10%10;
c=n/1%10;
if(a*a*a+b*b*b+c*c*c==n)
cout<<n<<" ";
}
cout<<endl<<"======way2======"<<endl;
int abc;
for(a=1; a<=9; a++)
for(b=0; b<=9; b++)
for(c=0; c<=9; c++)
if(a*a*a+b*b*b+c*c*c==a*100+b*10+c)
cout<<a<<b<<c<<" ";
}
复制代码
作者:
JASONZHU
时间:
2018-7-22 22:47
100!末尾一共有几个“0”?
#include<iostream>
using namespace std;
int s,i,a;
int main()
{
while(a<100)
{
if(a%5==0 && a%25!=0) s=s+1;
{
if(a%25==0 && a%125!=0) s=s+2;
}
a++;
}
cout<<s;
return 0;
}
复制代码
作者:
admin
时间:
2018-7-24 19:41
#include <iostream>
using namespace std;
int a,b,c,i,s;
int main()
{
cout<<"\n=========T13=======\n";
a=b=1;
for (i=3; i<=10; i++)
{
c=a+b;
cout<<c<<' ';
a=b;
b=c;
}
cout<<"\n=========T14=======\n";
a=-1;
for (i=1; i<=10; i++)
{
a=a*(-1);
s=a*i;
cout<<s<<' ';
}
cout<<"\n=========T15=======\n";
for (char ch='A'; ch<='Z'; ch++) cout<<ch<<' ';
}
复制代码
作者:
admin
时间:
2018-7-24 19:46
判断位数
#include <iostream>
using namespace std;
int a,b,c,i,x;
int main()
{
cin>>x;
k=0;
while (x>0)
{
x=x/10;
k++;
}
cout<<k;
return 0;
}
复制代码
作者:
admin
时间:
2018-7-24 19:59
数字颠倒,123变成321
#include <iostream>
using namespace std;
int x,y,k;
int main()
{
cin>>x;y=0;
while (x>0)
{
k=x%10; ///砍下屁股
x=x/10; ///留下的一截
y=y*10+k; ///加在y的屁股后面
}
cout<<y;
return 0;
}
复制代码
作者:
admin
时间:
2018-7-24 20:26
质数判断
#include <iostream>
using namespace std;
int x,i;
bool b;
int main()
{
cin>>x;
i=2;///从2开始
b=1; ///假设是质数
while (i*i<=x && b) ///平方根 和 尚未确定 2个条件
if (x%i==0) b=0; ///确定不是质数
else i++; ///试下一个
cout<<b;
return 0;
}
复制代码
欢迎光临 华师一附中OI组 (http://hsyit.cn/)
Powered by Discuz! X3.2