用while计算1-3+5-7+9
思维是怎么样的#include <iostream>
using namespace std;
int main()
{
int i=1; //初始值
int val=1;
int op=0;//+-操作符
while(i<9)//没超过最大值就循环
{
if (op%2==1)//对应操作符加减间隔,如果操作符在奇数位就是- 否则就+
{
val=val+(i+2);
}else
{
val=val-(i+2);
}
i+=2;//1 3 5 7 9...每次跳2
op++;//操作符自增,以便下次判断操作符在奇数位还是偶数位
}
printf("%d\r\n",val);//打印结果
system("pause");
return 0;
} machimilk 发表于 2015-11-19 21:40
因为在启动后,默认就是system("pause"),在你未输入键值的情况下不会退出的.而且感觉用cout语句感觉更简单:lol: #include<iostream>
#include<math.h>
using namespace std;
void main()
{
int i = 1, j = 1, sum = 0;
while (j <= 9)
{
sum += pow(-1, i + 1)*j;
j += 2; i++;
}
cout << sum << endl;
system("pause");
} 一起研究一下呵呵 #include <Iostream>
int main(void)
{
int i = 1;
int value = 0;
int k = 1;
while(i<=9)
{
value = k * i + value;
i+=2;
k=-1 * k;
}
std:: cout<<value;
return 0;
} #include<stdio.h>
int main ()
{
int count = 3 + 5 + 7 + 9;
int i = 0;
int result = 1;
while (count-- > 0)
{
if (i < 3)
{
result--;
goto ok;
}
if (i < 5 + 3)
{
result++;
goto ok;
}
if (i < 5 + 3 - 7)
{
result--;
goto ok;
}
if (i < 5 + 3 - 7 + 9)
{
result++;
goto ok;
}
ok: i++;
}
printf ("%d\n", result);
return 0;
}
int CalcSum(int n) {
int i = 0;
int iSign = 1, iSum = 0;
for (i = 0; i < n; ++i) {
iSum += iSign * (i * 2 + 1);
iSign *= -1;
}
return iSum;
}
这里使用了一个iSign来表示数字的正负,与-1相乘改变正负,这样比判断语句高效。想知道原因的话可以看看计算机体系结构中关于指令调度的相关内容。
页:
[1]