c语言-输入一个数n,如为偶数则求表达式2+4+6+。。。+n的和。如为奇数,

问题描述

输入一个数n,如为偶数则求表达式2+4+6+。。。+n的和。如为奇数,

输入一个数n,如为偶数则求表达式2+4+6+。。。+n的和。如为奇数,则求表达式1+3+5+。。。n的和。 帮忙给下解答, 谢谢

解决方案

先判断n是偶数还是奇数,可以用n%2的结果来判断,然后使用循环来计算你需要的结果并赋给结果变量

解决方案二:

 #include<stdio.h>

int f(int i){
    int sum=i;
    if(i>0) sum += f(i-2);
    return sum;
}

void main(){
    int n,sum;
    printf("请输入一个数:n");
    scanf("%d",&n);
    printf("%dn",sum = f(n));
}

解决方案三:

int n = 9;//这个你自己录入
int sum = 0;//表示和
while(n>0){
sum+=n;
n-=2;
}
//搞定

解决方案四:

谢谢,算了, 下面的不知道怎么写。定义几个数,怎么计算求和

解决方案五:

while(number >0) //number为输入的n ,sum用于保存最后的结果 sum 初值为0
{
sum += number;
number -= 2;
}

解决方案六:

int n,m,sum=0;
printf("请输入数据n");
scanf("%d",&n);
m=n-2;
if(n%2==0)
{
while(m>=0)
{
n+=m;
m-=2;
}
}
else if(n%2!=0)
{
while(m>=1)
{
n+=m;
m-=2;
}
}
printf("%d",&n);
不知道为啥结果不对,调试的时候看到n的值是对的,不知道为啥输出的时候就变了,求大神告知

解决方案七:

如果每次减2的话,不用管奇偶,直接加就行。

解决方案八:

 #include <iostream>
using namespace std;
int main()
{
    cout << "输入一个数:" ;
    int n;
    cin >> n;
    cout << endl;
    int a = 1;
    int m;
    do
    {
        m = n/10;
        if(m>0)
            a++;
    }while(m>0);

    cout << a << endl;
    return 0;
}

似乎没错, 但就是有点小问题

解决方案九:

不好意思,上面的发错了

 #include <iostream>
using namespace std;
void fun1(int x, int q);
void fun2(int y, int w);
int main()
{
    int n;
    cin >> n;
    if(n%2==0)
    {
        int a = 0;
        fun1(a, n);
    }
    else
    {
        int b = 1;
        fun2(b, n);
    }
    return 0;
}
void fun1(int x, int q)
{
    cout << "是偶数" << endl;
    int b1=0;
    do
    {
        x+=2;
        b1+=x;
        cout << x << "+" ;
    }while(b1<q);

    cout << "=" << q << endl;
}
void fun2(int y, int w)
{
    cout << "是奇数" << endl;
    int a1, a2=0;
    a1 = y-1;
    do
    {

        a1+=2;
        a2+=a1;
        cout << a1 << "+"  ;
    }while(a2<w);

    cout << "=" << w << endl;
}

解决方案十:

这是对的

 #include <iostream>
using namespace std;
void fun1(int x, int q);
void fun2(int y, int w);
int main()
{
    int n;
    cin >> n;
    if(n%2==0)
    {
        int a = 0;
        fun1(a, n);
    }
    else
    {
        int b = 1;
        fun2(b, n);
    }
    return 0;
}
void fun1(int x, int q)
{
    cout << "是偶数" << endl;
    int b1=0;
    do
    {
        x+=2;
        b1+=x;
        cout << x << "+" ;
    }while(b1<q);

    cout << "=" << q << endl;
}
void fun2(int y, int w)
{
    cout << "是奇数" << endl;
    int a1, a2=0;
    a1 = y-1;
    do
    {

        a1+=2;
        a2+=a1;
        cout << a1 << "+"  ;
    }while(a2<w);

    cout << "=" << w << endl;
}
时间: 2024-11-03 08:10:44

c语言-输入一个数n,如为偶数则求表达式2+4+6+。。。+n的和。如为奇数,的相关文章

C语言输入一个数之后,无法继续往下执行代码,void initial那里,可以帮忙改一下么

问题描述 C语言输入一个数之后,无法继续往下执行代码,void initial那里,可以帮忙改一下么 #include int n=0,time=0; struct PCB { char pname[5]; //进程名 int arrivalTime[5]; //进程提交时间 int pstart[5]; //进程开始运行时间 int pend[5]; //进程完成时间 int runningTime[5]; //进程运行所需时间 int turnaroundTime[5]; //进程周转时间

c语言-[C语言]求一个算法,输入N个数,输出所有其中任意M个数相加等于定值S的结果

问题描述 [C语言]求一个算法,输入N个数,输出所有其中任意M个数相加等于定值S的结果 如题,比如输入1,,2,10,5,7,8,9,11,输出其中任意几个数相加等于12的结果(不重复), 不自身相加. 1+2+9=12 10+2=12 7+5=12 解决方案 这题如果不考虑优化问题--轮询吧--总共有2的n次方种组合-学过排列组合的都知道

printf-c语言从键盘上输入10个数,找到最小数,输出与其相邻的数。

问题描述 c语言从键盘上输入10个数,找到最小数,输出与其相邻的数. 从键盘上输入10个数,找到最小数,输出与其相邻的数. #include<stdio.h> void min(double a[10]) {int i,index; double min=a[0]; for(i=0;i<10;i++) if(min<a[0]){min=a[i]; index=i;} printf("%f &f",a[index-1],a[index+1]); } voi

c语言-九宫格问题,任意的输入9个数,写个代码判断是否可以横竖斜同于用一个数。可以的话给出代码看下

问题描述 九宫格问题,任意的输入9个数,写个代码判断是否可以横竖斜同于用一个数.可以的话给出代码看下 九宫格问题,任意的输入9个数,写个代码判断是否可以横竖斜同于用一个数.可以的话给出代码看下 解决方案 假设你的九宫格放在一个二维数组中,那么可以这么写 int sum[8]; for (int i = 0; i < 8; i++) sum[i] = 0; for (i = 0; i < 3; i++) { sum[0] += arr[0, i]; sum[1] += arr[1, i]; su

c语言-为什么输入第一个数时要输入2个数才输出“第二个数”

问题描述 为什么输入第一个数时要输入2个数才输出"第二个数" #include #include struct LinkList { int data; struct LinkList *next; }; struct LinkList *Creat() { struct LinkList *H=NULL,*p,*q; int x,j; for(j=1;j { printf("请输入第%d个数: ",j); printf(" n"); p=(st

c语言-C语言输入不会,求指教

问题描述 C语言输入不会,求指教 按如下图形打印杨辉三角,其特点是两个腰上的数都为1,其他位置上的每一个数是它上 一行相邻两个整数之和. 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 . . . Input 包含多组数据.每组数据占一行. 输入n(0 < n <= 20)表示输出杨辉三角的行数. Output 对于每组测试数据,输出n行杨辉三角. 格式要求: 每个数字宽6个字符.请使用 printf("%-6d", a); 每行末尾无空格. Sample In

C语言统计字符个数代码分享_C 语言

C语言实现统计字符个数 #include<stdio.h> int main() { int sz[10]={0},zm[26]={0},z[26]={0},i,space=0,e=0,t=0; char c; printf("请输入一段字符,统计其中各字符的数量\n"); while((c=getchar())!='\n') { if(c<='z'&&c>='a') zm[c-'a']++; else if(c<='Z'&&

jQuery实现统计输入文字个数的方法

 这篇文章主要介绍了jQuery实现统计输入文字个数的方法,涉及jQuery操作鼠标事件及dom元素的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了jQuery实现统计输入文字个数的方法.分享给大家供大家参考.具体如下: jQuery统计输入文字个数可以使用在统计回复字数,标题字数长度提示,增加友好度提高用户体验.代码如下: 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head>

printf-输入从小到大的5个数。然后再输入一个数,然后按从小到大排列输出。下面的程序为什么不正确?

问题描述 输入从小到大的5个数.然后再输入一个数,然后按从小到大排列输出.下面的程序为什么不正确? int i,a[6],x,t; for(i=0;i<5;i++) scanf("%d",&a[i]); printf("再输入一个数"); scanf("%d",&a[x]); for(i=0;i<6;i++) { if(a[x]>a[x+1]) { t=a[x]; a[x]=a[x+1]; a[x+1]=t; }