当前位置:   article > 正文

【C++ 初学者练习题合集】_c++练习

c++练习

//有关输入输出算式

//咱就是说这个合集可以闲着没事敲一下代码来提高一下代码水平(纯初学者)

1./*编程读入整数n,计算n*n。
输入   每行输入一个整数n,输入-1表示输入结束
输出   针对每行输入的n,输出一行n*n的结果   */

  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4. int n;
  5. while(cin>>n){
  6. if(n!=-1){
  7. cout<<n*n<<endl;
  8. }
  9. else break;
  10. }
  11. return 0;
  12. }

2./*  输入一个整数n,计算 0*0+1*1+2*2+...+n*n的值并打印
输入   一个整数n
输出   一个整数表示计算结果  */

  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4. int n;
  5. int sum=0;
  6. cin>>n;
  7. for(int i=1;i<=n;i++){
  8. int num=i*i;
  9. sum+=num;
  10. }
  11. cout<<sum<<endl;
  12. return 0;
  13. }

3./*  输入整数a和n,计算a + a*a + a*a*a + ... + a*a*a*...*a的值,其中最后一项有n个a
输入   两个整数:a(1<=a<=9) n(1<=n<=6)
输出   一个整数,输出算式的值  */

  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4. int a,n;
  5. int num=1;
  6. int sum=0;
  7. cin>>a>>n;
  8. if((1<=a&&a<=9)&&(1<=n&&n<=6)){
  9. for(int i=0;i<n;i++){
  10. num*=a;
  11. sum+=num;
  12. }
  13. cout<<sum;
  14. }
  15. else return 0;
  16. return 0;
  17. }

4./*  输入整数a和n,计算a + aa + aaa + ... + aaa...a的值,其中最后一项有n位a
输入   两个整数:a(1<=a<=9) n(1<=n<=6)
输出   一个整数,输出算式的值  */

  1. /*
  2. #include<iostream>
  3. using namespace std;
  4. int main(){
  5. int a,n;
  6. cin>>a>>n;
  7. if((1<=a&&a<=9)&&(1<=n&&n<=6)){
  8. int num=a,sum=a;
  9. for(int i=1;i<n;i++){
  10. num=10*num+a;
  11. sum+=num;
  12. }
  13. cout<<sum<<endl;
  14. }
  15. return 0;
  16. } */
  17. /*
  18. #include<iostream>
  19. using namespace std;
  20. int main(){
  21. int sum=0;
  22. int a,n,A;
  23. cin>>a>>n;
  24. for(int i=0,A=a;i<n;i++){
  25. sum+=a;
  26. a=A+10*a;
  27. }
  28. cout<<sum<<endl;
  29. return 0;
  30. } */
  31. #include<iostream>
  32. using namespace std;
  33. int main(){
  34. int a,n;
  35. int sum=0;
  36. cin>>a>>n;
  37. for(int i=1;i<=n;i++){
  38. sum=10*sum+i;
  39. }
  40. sum*=a;
  41. cout<<sum;
  42. return 0;
  43. }

5.

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cmath>
  4. #include<bits/stdc++.h>
  5. using namespace std;
  6. int jc(int n);
  7. int main(){
  8. int m,n;
  9. double x;
  10. cin>>m;
  11. for(int i=0;i<m;i++){
  12. double num,sum=0;
  13. cin>>x>>n;
  14. for(int j=1;j<=n;j++){
  15. double X=pow(x,j);
  16. int jieceng=jc(j);
  17. if(j%2==0){
  18. num=(double)(X/jieceng);
  19. }
  20. if(j%2!=0){
  21. num=(double)((-1)*(X/jieceng));
  22. }
  23. sum+=num;
  24. }
  25. cout<<fixed<<setprecision(3)<<sum<<endl;
  26. }
  27. return 0;
  28. }
  29. int jc(int n){
  30. int jieceng=1;
  31. for(int i=1;i<=n;i++){
  32. jieceng*=i;
  33. }
  34. return jieceng;
  35. }
  36. /*
  37. #include<iostream>
  38. using namespace std;
  39. int main(){
  40. int m;
  41. cin>>m;
  42. for(int i=0;i<m;i++){
  43. int n;
  44. double x;
  45. double num=1.0,sum=0.0;
  46. cin>>x>>n;
  47. for(int j=1;j<=n;j++){
  48. num=num*x/j;
  49. if(j%2==0){
  50. sum+=num;
  51. }
  52. if(j%2!=0){
  53. sum-=num;
  54. }
  55. }
  56. printf("%.3f\n",sum);
  57. }
  58. return 0;
  59. } */

6.//请计算并输出当1+1/2+...+1/N > 10时N的值

  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4. double n=1; //这里不能定义成整型int,会导致计算结果还要转换从而增加运算时间(超时)
  5. for(double sum=0.0;sum<=10;n++){
  6. sum+=1/n;
  7. }
  8. cout<<n-1<<endl;
  9. return 0;
  10. }

7.

  1. /*
  2. #include<iostream>
  3. using namespace std;
  4. void pr(int n);
  5. int main(){
  6. pr(100);
  7. pr(1000);
  8. pr(10000);
  9. return 0;
  10. }
  11. void pr(int n){
  12. if(n==1) cout<<"0"<<endl;
  13. if(n==2) cout<<"1"<<endl;
  14. if(n==3) cout<<"2"<<endl; // S1=1 S2=2 S3=5
  15. if(n==4) cout<<"2"<<endl;
  16. if(n==5) cout<<"2"<<endl;
  17. int a1=1,a2=1,a3,sum=2;
  18. for(int i=3;sum<n;i++){
  19. a3=a1+a2*2;
  20. sum+=a3; //sum循环内第一次赋值为5,所以前面五种情况要单独列出来
  21. a1=a2; //记得千万不能漏掉这个,递归(迭代)
  22. a2=a3;
  23. if(sum<n&&sum+a1+a2*2>=n) cout<<i<<endl;
  24. }
  25. }
  26. */
  27. #include <stdio.h>
  28. int main(){
  29. int a1=1,a2=1,a3,sum=2,i=2;
  30. for(;sum<2;i++){
  31. a3=a1+a2*2;
  32. sum+=a3;
  33. a1=a2;
  34. a2=a3;
  35. if(sum<2&&sum+a1+a2*2>=2) printf("%d\n",i+1);
  36. }
  37. sum=2;a1=1;a2=1;i=2;
  38. for(;sum<1000;i++){
  39. a3=a1+a2*2;
  40. sum+=a3;
  41. a1=a2;
  42. a2=a3;
  43. if(sum<1000&&sum+a1+a2*2>=1000) printf("%d\n",i+1);
  44. }
  45. sum=2;a1=1;a2=1;i=2;
  46. for(;sum<10000;i++){
  47. a3=a1+a2*2;
  48. sum+=a3;
  49. a1=a2;
  50. a2=a3;
  51. if(sum<10000&&sum+a1+a2*2>=10000) printf("%d\n",i+1);
  52. }
  53. return 0;
  54. }

8./*  一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有目击车号,只记下车号的一些特征。
甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;
丙是数学家,他说:四位的车号刚好是一个整数的平方。根据以上线索编程序求出车号。
输入   无
输出   输出所求的整数  */ 

  1. //法一 傻瓜法
  2. #include<iostream>
  3. using namespace std;
  4. int main(){
  5. int num,n;
  6. for(n=32;n<100;n++){ //32*32=1024 题干下最小的四位数,99*99题干下最大的四位数
  7. int a1,a2,a3,a4;
  8. num=n*n; //这样设置计算量比较小,将开方问题都转换为平方
  9. a4=num%10; //用这个方法可以求得个位上的数(要记)!!!
  10. a3=(num%100-a4)/10; //法二的计算方法改进很多 num%100只能求得十位加上个位的数
  11. a2=(num%1000-a3*10-a4)/100;
  12. a1=num/1000; //这样能直接求得最高位
  13. if((a1==a2)&&(a3==a4)){
  14. cout<<num<<endl;
  15. }
  16. }
  17. return 0;
  18. }
  19. //法二
  20. #include<iostream>
  21. using namespace std;
  22. int main(){
  23. int num,n;
  24. for(n=32;n<100;n++){
  25. int a1,a2,a3,a4;
  26. num=n*n;
  27. a1=num/1000; //C++中 num/1000 表示只留下千位及千位以前的数(并缩小)
  28. a2=(num/100)%10; /*妙啊,这样子可以只剩下百位和千位,
  29. 然后它们变成新数的十位和个位,
  30. 就可以直接求得最小的个位也就是原来的百位 */
  31. a3=(num/10)%10;
  32. a4=num%10;
  33. if((a1==a2)&&(a3==a4)){
  34. cout<<num<<endl;
  35. }
  36. }
  37. return 0;
  38. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/696777
推荐阅读
相关标签
  

闽ICP备14008679号