友友们,c++的题,希望各位能看看

  • img

img

img

img

img


这几个题,刚学c++,掌握的不是很好,原创题找不到答案,但自己想要提高


int main()
{
    int s;
    scanf("%d",&s);
    int num = 0;
    int i =0;
    while(s!=0)
    {
        num = num + s%10;
        s=s/10;
        i++;
    }
    printf("%d\n",i);
    printf("%d\n",num);

}

第一个

直接以字符串形式接收数字串,字符串长度即为位数,单个字符转数字后求和就是第二个需要的结果

c还是c++

Fibonacci数列的前n项和


#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int i;
    int sum=0;
    int a=1,b=1,c=1;
    for(i=0;n>0;i++)
    {
        if(n>2)
        {
            c=a+b;
            a=b;
            b=c;
            sum=sum+c;
            n--;    
        }
        else
        {
            sum=sum+1;
            n--;
        }        
    }
    printf("sum=%d",sum);
    
    return 0;
} 

制作不易,望采取
第一题:

#include <iostream>
using namespace std;
int main(){
    int n=0;
    cin>>n;
    int sum=0;
    while(n>0) {
        sum=sum+n%10;
        n/=10;
    }   
    cout<<sum;
    return 0;
}

第二题:

#include<cstdio>
#include<iostream>
#include<stdlib.h>
using namespace std;
 
int Fibonacci(int n)
{
    if(n == 0 || n == 1)
        return 1;
    else 
        return Fibonacci(n-1) + Fibonacci(n-2);
}
int main(){
    int n;
    cin >> n;
 
    cout << Fibonacci(n);
 
    system("pause");
    return 0;
}

第三个:

 
int main()
{
    int a[5] = {1,2,3,4,5};
    int sum = 0;
    for(int i = 0;i<5;i++)
    {
        for(int j = 0;j<5;j++)
        {
            if(j == i)
            {
                continue;
            }
            for(int x=0;x<5;x++)
            {
                if(x == j || x == i)
                {
                    continue;
                }
                printf("%d ",a[i]*100+a[j]*10+a[x]);
                sum++;
            }
 
        }
    }
    printf("sum=%d\n",sum);
}

最后一题:

#include<iostream>
using namespace std;
#include<string>
#include<cmath>

void is_prime(int num)
{
    int dex = sqrt(num);
    bool out = 1;

    if (num == 2 || num == 3)cout << num << "是素数" << endl;
    else if (num == 0 || num == 1)cout << num << "不是素数" << endl;

    else {
        for (int i = 2; i <= dex; i++)
        {
            if (num % i == 0)
            {
                out = 0;
                break;
            }
        }

        if (out)
        {
            cout << num << "是素数" << endl;
        }
        else
        {
            cout << num << "不是素数" << endl;
        }
    }
    
}

int main()
{
    int num;

    int n;
    cout << "请输入要测试的个数:" << endl;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        cout << "请输入一个整数:" << endl;
        cin >> num;

        is_prime(num);
        system("pause");//设置暂停方便观察
        system("cls");//设置清屏
    }
    


    return 0;
}


1.


int main()
{
    int s;
    scanf("%d",&s);
    int num = 0;
    int i =0;
    while(s!=0)
    {
        num = num + s%10;
        s=s/10;
        i++;
    }
    printf("%d\n",i);
    printf("%d\n",num);
}

下面给出知识点,思路和代码,望采纳,谢谢
第一题:
这道题主要考察多位数分解的知识,即边除边模。
首先一个while,然后将n%10(第一次分解的位数(个位))放到变量sum里(注意累加),并ans++(位数+1),最后不要忘了n/=10.
代码:

#include<bits/stdc++.h>
using namespace std;
void x(int n){
    int sum=0,ans=0;
    while(n){
        sum+=n%10;
        n/=10;
        ans++;
    }
    cout<<ans<<endl<<sum;
}
int main()
{
    int n;
    cin>>n;
    x(n);
    return 0;
}

第二题:
这一题主要考察斐波那契数列,但这里不同的是要求前n项的和,只需在循环里加个sum就行了。
我这里数组用long long,因为斐波那契数列增长很快。
代码:

#include<bits/stdc++.h>
using namespace std;
long long f[40];
int main()
{
    int n;
    long long sum=2;
    cin>>n;
    f[1]=1;
    f[2]=1;
    for(int i=3;i<=n;i++){
        f[i]=f[i-1]+f[i-2];
        sum+=f[i];
    }
    cout<<sum;
    return 0;
}

第三题:
这道题主要考察枚举,就是枚举二位数的个位和十位,注意要判断如果个位==十位,就要continue。
代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int sum=0;
    for(int i=1;i<=5;i++){
        for(int j=1;j<=5;j++){
            if(i==j)continue;
            else{
                cout<<i<<j<<' ';
                sum++;
            }
        }
    }
    cout<<"sum="<<sum;
    return 0;
}

第四题:
这道题就是sum循环累加iii就行了。
代码:

#include<bits/stdc++.h>
using namespace std;
long long sum=0;
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        sum+=i*i*i;
    }
    cout<<sum;
    return 0;
}

第五题:
这道题主要是素数判断+累加计数。
代码:

#include<bits/stdc++.h>
using namespace std;
bool prime(int x){
    if(x<2)return false;
    for(int i=2;i*i<=x;i++)
        if(x%i==0)return false;
    return true;
}
int main()
{
    int n,m,con=0,sum=0;
    cin>>n>>m;
    for(int i=n;i<=m;i++){
        if(prime(i)==true){
            con++;
            sum+=i;
        }
    }
    cout<<"counts="<<con<<' '<<"sum="<<sum;
    return 0;
}

以上就是题解,望题主采纳哦,如果有问题可以问我😁

第四题

#include <iostream>
using namespace std;

int main()
{
  int n,sum;
  cin >> n;
  for(int i = 1;i <= n;i++)
    sum += i * i * i;
  cout << sum << endl;
  return 0;
}