C++循环结构23道题(含答案)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cin>>m; if(m<=1000) tax=0; else if(m<=3000)
tax=m*0.03; else if(m<=5000)
tax=m*0.04; else
tax=m*0.06; cout<<tax<<" "; } return 0; }
循环 13:因数个数 给定一个正整数 n,求它的因数个数。如 输入 12 输出 6 测试 输入 30 输出 8 #include<iostream> using namespace std; int main() {
输入 5 输出 1.56978 输入 4 输出 1.49286
#include<iostream> using namespace std; int main() {
int i,n; double s=0; cin>>n; for(i=1;i<=n;i++)
s+=1.0/(3*i-2); cout<<s<<endl; return 0; }
int i,max=0; cin>>i;
while(i!=0) {
if(i>max) max=i; cin>>i;
} cout<<max<<endl; return 0; }
0 时结束循环,并且输出最大的正数。
循环 02:素数 输入正数 n ,判断 n 是否为素数。若为素数则输出 以被 1 和其本身整除的正数( 1 除外)) 输入 10 输出 0 输入 7 输出 1 测试: 输入 9 输出 0 #include<iostream> using namespace std; int main() {
题目、描述、输入、输出、输入样例、输出样例、测试输入、测试输出
循环 01:最大数 写一个程序,可以输入一批正数,输入 输入 39 28 5 63 18 27 0 输出 63 测试: 输入 153 26 963 28 75 90 156 0 输出 963 #include<iostream> using namespace std; int main() {
int n,i,j,k; for(n=100;n<1000;n++) {
i=n/100; j=n/10%10; k=n%10; if(i*i*i+j*j*j+k*k*k==n)
cout<<n<<" "; } return 0; }
循环 08:数位之和 输入一个正整数,输出其各个位置上的数字之和。
输入 1234 输出 10 输入 12534 输出 15 测试 输入 4325 输出 14 #include<iostream> using namespace std; int main() {
#include<iostream> using namespace std; int main() {
int n,a=0; cin>>n; while(n>=0)
{a=n+a; cin>>n;} cout<<a<<endl; return 0; } 循环 11:特殊数值 已知四位数 3025 有一个特殊性质 : 它的前两位数字 30 和后两位数字 25 的和是 55, 而 55 的平方刚好等于该数 (55*55=3025). 试编一程序打印所有具有这种性质的四位数 . 输入无 输出 2025 3025 9801 #include<iostream> using namespace std; int main() { int i,a,b;
3%; 4%;
输出:每个收入对应的纳税额 输入 4 900 2000 4000 6000 输出 0 60 160 360 #include<iostream> using namespace std; int main() {
double m,tax;;int i,n; cin>>n; for(i=1;i<=n;i++) {
int repeat,n,i; cin>>repeat; for(i=0;i<repeat;i++) {
cin>>n; if(n<60)
cout<<"Fail"<<endl; else
cout<<"Pass"<<endl; } return 0; }
循环 06:数列求和 输入 1 个正整数 n(n<=100),计算并输出 1+ 1/2+ 1/3+ ……+ 1/n 。 输入 5 输出 2.28333 输入 4 输出 2.08333
循环 04:西瓜卖几天
n 个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?
说明:当西瓜个数为奇数时,卖一半为一半的整数,如当西瓜个数为
5 时,卖一半为卖 2
Hale Waihona Puke Baidu
个。
输入:西瓜个数,输出:天数
输入 10 输出 2
输入 50 输出 4
测试
输入 120 输出 5
#include<iostream>
int n,i,count=0; cin>>n; for(i=1;i<=n;i++) {
if(n%i==0) count++;
} cout<<count<<endl; return 0;
6 的因数为 1、 2、 3、 6,则因数个数为 4。
}
循环 14:最大公约数 键盘输入两个正整数 m , n,求出他们的最大公约数。 输入 20 15 输出 5 测试 输入 32 80 输出 16 #include<iostream> using namespace std; int main() {
int i,N,n,a=0,b=0; cin>>N; for(i=1;i<=N;i++) {
cin>>n; if(n%2==0)
a+=n*n*n; else
b+=n*n;
} cout<<b<<" "<<a<<endl; return 0; }
循环 17:数位计算 对于输入的一个数字, 请计算它的各个位上的数字为偶数的和。 输入 4321 输出 6 输入 51289 输出 10 测试 输入 54893 输出 12 #include<iostream> using namespace std; int main ()
int n,s=0; cin>>n; while(n) {
s+=n%10; n=n/10; } cout<<s<<endl; return 0; }
循环 09:奇数和 读入一批正整数 (以零为结束标志 ),求其中的奇数和。 输入 32 33 50 34 65 67 0 输出 165 输入 13 15 17 30 35 0 输出 80 测试 输入 31 33 50 34 65 67 0 输出 196 #include<iostream> using namespace std; int main() {
例如: 1234 ,结果为 6=2+4。
{ int n,x,s=0; cin>>n; while(n) { x=n%10; if(x%2==0) s+=x; n=n/10; } cout<<s<<endl;
return 0; }
循环 18:数根 对于一个正整数 n,我们将它的各个位相加得到一个新的数字,如果这个数字是一位数,我 们称之为 n 的数根, 否则重复处理直到它成为一个一位数, 这个一位数也算是 n 的数根。 例 如:考虑 24, 2+4=6, 6 就是 24 的数根。考虑 39,3+9=12, 1+2=3, 3 就是 39 的数根。请 编写程序,计算 n 的数根。 输入 189 输出 9 测试 输入 8943 输出 6 #include<iostream> using namespace std; int main() {
#include<iostream> using namespace std; int main() {
int n,i=1; double s=0; cin>>n; while(i<=n) {
s+=1.0/i; i++;}
cout<<s<<endl; return 0; }
循环 07:水仙花数 打印出所有的 "水仙花数 " ,所谓 " 水仙花数 " 是指一个三位数,其各位数字立方和等于该 数本身。例如: 153 是一个 " 水仙花数 ",因为 153=1 的三次方+ 5 的三次方+ 3 的三次方。 输入 无 输出 153 370 371 407 #include<iostream> using namespace std; int main () {
int m,n,i; cin>>m>>n; for(i=m;i>=1;i--)
{ if(m%i==0&&n%i==0)
break; }
cout<<i<<endl; return 0; }
循环 15:斐波那契数列 判 断 第 n 个 斐 波 那 契 数 列 能 否 被 3 整 除 给 定 斐 波 那 契 数 列 为 : F(0)=1, F(1)=1,
for(i=1000;i<=9999;i++) {
a=i/100; b=i%100; if((a+b)*(a+b)==i)
cout<<i<<" "; } return 0; }
循环 12:征税 税务部门征收所的税,规定如下: 1)收入在 1000 元以内(含 1000 ),免征; 2)收入在 1000~3000 元以内(含 3000 ),纳税额为收入的 3)收入超过 3000~5000 元以内(含 5000 ),纳税为收入的 4)当收入超过 5000 元时,纳税为收入的 6%。 请根据以上关系,输入收入 m,输出应缴纳的税收 tax。 输入:第一个整数 n 表示后续有 n 个收入
int n,s=0; cin>>n; while(n>0) {if(n%2!=0) s=s+n; cin>>n; } cout<<s<<endl; return 0; }
循环 10:求和 从键盘输入若干正数,对其求和并输出,遇到负数则终止输入。
输入 32 33 50 34 65 67 -1 输出 281 输入 13 15 17 30 35 -2 输出 110 测试 输入 31 33 50 34 65 67 -5 输出 280
using namespace std;
int main()
{
int n,d=0;
cin>>n;
while(n>0)
{
d++;
n=n/2-2;
}
cout<<d<<endl; return 0; }
循环 05:成绩判定 输入一个正整数 repeat (0<repeat<10) ,做 repeat 次下列运算: 输入一个学生的数学成绩,如果它低于 60,输出 “Fail,”否则,输出 “Pass。” 输入 5 35 68 49 94 88 输出 Fail Pass Fail Pass Pass 测试 输入 8 90 80 60 50 40 30 73 88 59 输出 Pass Pass Pass Fail Fail Fail Pass Pass Fail #include<iostream> using namespace std; int main() {
int n,F0=1,F1=1,F,i; cin>>n; for(i=2;i<=n;i++) {
F=F0+F1; F0=F1; F1=F;} if(F%3==0)
cout<<"yes"<<endl; else
cout<<"no"<<endl; return 0;
}
循环 16:计算奇偶数 求 N( <=100)个数中奇数的平方和与偶数的立方和。 注意:输入格式为,第一个数为 N,后面接着 N 个数。输出的平方和与立方和以空格隔开 输入 3 5 8 9 输出 106 512 测试 输入 5 5 8 9 10 输出 106 1512 #include<iostream> using namespace std; int main() {
int n,i,d; cin>>n; for(i=2;i<n;i++) {d=n%i;
if(n%i==0) break;
}
1,否则输出 0。(提示:素数是指只可
if(n==i) cout<<"1"<<endl;
else cout<<"0"<<endl;
return 0; }
循环 03:数列求和 输入一个正整数 n,计算前 n 项之和: 1+1/4+1/7+1/10..+1/(3*n-2) 。
F(n)=F(n-1)+F(n-2)(n>=2),编写一个程序,输入 n(>=0),如果 F(n)能被 3 整除则输出一个 “ yes,” 否则输出一个 “no”。 输入 8 输出 yes 输入 6 输出 no 测试 输入 12 输出 yes #include<iostream> using namespace std; int main() {
tax=m*0.03; else if(m<=5000)
tax=m*0.04; else
tax=m*0.06; cout<<tax<<" "; } return 0; }
循环 13:因数个数 给定一个正整数 n,求它的因数个数。如 输入 12 输出 6 测试 输入 30 输出 8 #include<iostream> using namespace std; int main() {
输入 5 输出 1.56978 输入 4 输出 1.49286
#include<iostream> using namespace std; int main() {
int i,n; double s=0; cin>>n; for(i=1;i<=n;i++)
s+=1.0/(3*i-2); cout<<s<<endl; return 0; }
int i,max=0; cin>>i;
while(i!=0) {
if(i>max) max=i; cin>>i;
} cout<<max<<endl; return 0; }
0 时结束循环,并且输出最大的正数。
循环 02:素数 输入正数 n ,判断 n 是否为素数。若为素数则输出 以被 1 和其本身整除的正数( 1 除外)) 输入 10 输出 0 输入 7 输出 1 测试: 输入 9 输出 0 #include<iostream> using namespace std; int main() {
题目、描述、输入、输出、输入样例、输出样例、测试输入、测试输出
循环 01:最大数 写一个程序,可以输入一批正数,输入 输入 39 28 5 63 18 27 0 输出 63 测试: 输入 153 26 963 28 75 90 156 0 输出 963 #include<iostream> using namespace std; int main() {
int n,i,j,k; for(n=100;n<1000;n++) {
i=n/100; j=n/10%10; k=n%10; if(i*i*i+j*j*j+k*k*k==n)
cout<<n<<" "; } return 0; }
循环 08:数位之和 输入一个正整数,输出其各个位置上的数字之和。
输入 1234 输出 10 输入 12534 输出 15 测试 输入 4325 输出 14 #include<iostream> using namespace std; int main() {
#include<iostream> using namespace std; int main() {
int n,a=0; cin>>n; while(n>=0)
{a=n+a; cin>>n;} cout<<a<<endl; return 0; } 循环 11:特殊数值 已知四位数 3025 有一个特殊性质 : 它的前两位数字 30 和后两位数字 25 的和是 55, 而 55 的平方刚好等于该数 (55*55=3025). 试编一程序打印所有具有这种性质的四位数 . 输入无 输出 2025 3025 9801 #include<iostream> using namespace std; int main() { int i,a,b;
3%; 4%;
输出:每个收入对应的纳税额 输入 4 900 2000 4000 6000 输出 0 60 160 360 #include<iostream> using namespace std; int main() {
double m,tax;;int i,n; cin>>n; for(i=1;i<=n;i++) {
int repeat,n,i; cin>>repeat; for(i=0;i<repeat;i++) {
cin>>n; if(n<60)
cout<<"Fail"<<endl; else
cout<<"Pass"<<endl; } return 0; }
循环 06:数列求和 输入 1 个正整数 n(n<=100),计算并输出 1+ 1/2+ 1/3+ ……+ 1/n 。 输入 5 输出 2.28333 输入 4 输出 2.08333
循环 04:西瓜卖几天
n 个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?
说明:当西瓜个数为奇数时,卖一半为一半的整数,如当西瓜个数为
5 时,卖一半为卖 2
Hale Waihona Puke Baidu
个。
输入:西瓜个数,输出:天数
输入 10 输出 2
输入 50 输出 4
测试
输入 120 输出 5
#include<iostream>
int n,i,count=0; cin>>n; for(i=1;i<=n;i++) {
if(n%i==0) count++;
} cout<<count<<endl; return 0;
6 的因数为 1、 2、 3、 6,则因数个数为 4。
}
循环 14:最大公约数 键盘输入两个正整数 m , n,求出他们的最大公约数。 输入 20 15 输出 5 测试 输入 32 80 输出 16 #include<iostream> using namespace std; int main() {
int i,N,n,a=0,b=0; cin>>N; for(i=1;i<=N;i++) {
cin>>n; if(n%2==0)
a+=n*n*n; else
b+=n*n;
} cout<<b<<" "<<a<<endl; return 0; }
循环 17:数位计算 对于输入的一个数字, 请计算它的各个位上的数字为偶数的和。 输入 4321 输出 6 输入 51289 输出 10 测试 输入 54893 输出 12 #include<iostream> using namespace std; int main ()
int n,s=0; cin>>n; while(n) {
s+=n%10; n=n/10; } cout<<s<<endl; return 0; }
循环 09:奇数和 读入一批正整数 (以零为结束标志 ),求其中的奇数和。 输入 32 33 50 34 65 67 0 输出 165 输入 13 15 17 30 35 0 输出 80 测试 输入 31 33 50 34 65 67 0 输出 196 #include<iostream> using namespace std; int main() {
例如: 1234 ,结果为 6=2+4。
{ int n,x,s=0; cin>>n; while(n) { x=n%10; if(x%2==0) s+=x; n=n/10; } cout<<s<<endl;
return 0; }
循环 18:数根 对于一个正整数 n,我们将它的各个位相加得到一个新的数字,如果这个数字是一位数,我 们称之为 n 的数根, 否则重复处理直到它成为一个一位数, 这个一位数也算是 n 的数根。 例 如:考虑 24, 2+4=6, 6 就是 24 的数根。考虑 39,3+9=12, 1+2=3, 3 就是 39 的数根。请 编写程序,计算 n 的数根。 输入 189 输出 9 测试 输入 8943 输出 6 #include<iostream> using namespace std; int main() {
#include<iostream> using namespace std; int main() {
int n,i=1; double s=0; cin>>n; while(i<=n) {
s+=1.0/i; i++;}
cout<<s<<endl; return 0; }
循环 07:水仙花数 打印出所有的 "水仙花数 " ,所谓 " 水仙花数 " 是指一个三位数,其各位数字立方和等于该 数本身。例如: 153 是一个 " 水仙花数 ",因为 153=1 的三次方+ 5 的三次方+ 3 的三次方。 输入 无 输出 153 370 371 407 #include<iostream> using namespace std; int main () {
int m,n,i; cin>>m>>n; for(i=m;i>=1;i--)
{ if(m%i==0&&n%i==0)
break; }
cout<<i<<endl; return 0; }
循环 15:斐波那契数列 判 断 第 n 个 斐 波 那 契 数 列 能 否 被 3 整 除 给 定 斐 波 那 契 数 列 为 : F(0)=1, F(1)=1,
for(i=1000;i<=9999;i++) {
a=i/100; b=i%100; if((a+b)*(a+b)==i)
cout<<i<<" "; } return 0; }
循环 12:征税 税务部门征收所的税,规定如下: 1)收入在 1000 元以内(含 1000 ),免征; 2)收入在 1000~3000 元以内(含 3000 ),纳税额为收入的 3)收入超过 3000~5000 元以内(含 5000 ),纳税为收入的 4)当收入超过 5000 元时,纳税为收入的 6%。 请根据以上关系,输入收入 m,输出应缴纳的税收 tax。 输入:第一个整数 n 表示后续有 n 个收入
int n,s=0; cin>>n; while(n>0) {if(n%2!=0) s=s+n; cin>>n; } cout<<s<<endl; return 0; }
循环 10:求和 从键盘输入若干正数,对其求和并输出,遇到负数则终止输入。
输入 32 33 50 34 65 67 -1 输出 281 输入 13 15 17 30 35 -2 输出 110 测试 输入 31 33 50 34 65 67 -5 输出 280
using namespace std;
int main()
{
int n,d=0;
cin>>n;
while(n>0)
{
d++;
n=n/2-2;
}
cout<<d<<endl; return 0; }
循环 05:成绩判定 输入一个正整数 repeat (0<repeat<10) ,做 repeat 次下列运算: 输入一个学生的数学成绩,如果它低于 60,输出 “Fail,”否则,输出 “Pass。” 输入 5 35 68 49 94 88 输出 Fail Pass Fail Pass Pass 测试 输入 8 90 80 60 50 40 30 73 88 59 输出 Pass Pass Pass Fail Fail Fail Pass Pass Fail #include<iostream> using namespace std; int main() {
int n,F0=1,F1=1,F,i; cin>>n; for(i=2;i<=n;i++) {
F=F0+F1; F0=F1; F1=F;} if(F%3==0)
cout<<"yes"<<endl; else
cout<<"no"<<endl; return 0;
}
循环 16:计算奇偶数 求 N( <=100)个数中奇数的平方和与偶数的立方和。 注意:输入格式为,第一个数为 N,后面接着 N 个数。输出的平方和与立方和以空格隔开 输入 3 5 8 9 输出 106 512 测试 输入 5 5 8 9 10 输出 106 1512 #include<iostream> using namespace std; int main() {
int n,i,d; cin>>n; for(i=2;i<n;i++) {d=n%i;
if(n%i==0) break;
}
1,否则输出 0。(提示:素数是指只可
if(n==i) cout<<"1"<<endl;
else cout<<"0"<<endl;
return 0; }
循环 03:数列求和 输入一个正整数 n,计算前 n 项之和: 1+1/4+1/7+1/10..+1/(3*n-2) 。
F(n)=F(n-1)+F(n-2)(n>=2),编写一个程序,输入 n(>=0),如果 F(n)能被 3 整除则输出一个 “ yes,” 否则输出一个 “no”。 输入 8 输出 yes 输入 6 输出 no 测试 输入 12 输出 yes #include<iostream> using namespace std; int main() {