奇数及偶数和源代码c++,给出一个正整数n(1≤n≤1000),求出1,2,……n中全部奇数和以及全部偶数的和。 例如:n=9 奇数和 1+3+5+7+9=25 偶数和 2+4+6+8=20
时间: 2023-10-24 14:47:19 浏览: 322
以下是根据你的要求编写的 C++ 代码示例:
```cpp
#include <iostream>
int main() {
int n;
int oddSum = 0;
int evenSum = 0;
std::cout << "请输入一个正整数 n(1≤n≤1000):";
std::cin >> n;
for (int i = 1; i <= n; i++) {
if (i % 2 == 0) {
evenSum += i;
} else {
oddSum += i;
}
}
std::cout << "奇数之和为:" << oddSum << std::endl;
std::cout << "偶数之和为:" << evenSum << std::endl;
return 0;
}
```
这段代码可以计算从 1 到给定正整数 n 中的奇数和和偶数和。你可以根据需要修改输入和输出的方式,以及对输入范围进行限制。
相关问题
使用dev-c++完成线性表的应用算法 创建结点数:5 依次输入结点值:1 2 3 4 5 拆分后的结果: 奇数链表:1 3 5 偶数链表:2 4 将两链表合并: 合并结果为:5 4 3 2 1 的源代码
在Dev-C++中创建一个线性表应用算法,你可以按照以下步骤编写一个简单的程序来实现奇数链表和偶数链表的拆分以及合并操作:
首先,你需要定义一个单链表节点结构,然后分别创建两个链表,一个用于存储奇数,一个用于存储偶数。
```cpp
#include <iostream>
using namespace std;
// 定义链表节点结构
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
// 创建链表函数
ListNode* createList(int n, int arr[]) {
ListNode* head = new ListNode(arr[0]);
ListNode* temp = head;
for (int i = 1; i < n; i++) {
temp->next = new ListNode(arr[i]);
temp = temp->next;
}
return head;
}
// 拆分链表函数
void splitList(ListNode*& head, ListNode*& oddHead, ListNode*& evenHead) {
ListNode* oddTail = nullptr;
ListNode* evenTail = nullptr;
ListNode* current = head;
while (current != nullptr) {
if (current->val % 2 == 0) {
if (evenHead == nullptr) {
evenHead = oddHead = current;
evenTail = oddTail = current;
} else {
evenTail->next = current;
evenTail = current;
}
} else {
if (oddHead == nullptr) {
oddHead = current;
oddTail = current;
} else {
oddTail->next = current;
oddTail = current;
}
}
current = current->next;
}
}
// 合并链表函数
ListNode* mergeLists(ListNode* oddHead, ListNode* evenHead) {
ListNode* mergedHead = nullptr;
if (oddHead == nullptr) return evenHead;
if (evenHead == nullptr) return oddHead;
if (oddHead->val <= evenHead->val) {
mergedHead = oddHead;
oddHead = oddHead->next;
} else {
mergedHead = evenHead;
evenHead = evenHead->next;
}
ListNode* tail = mergedHead;
while (oddHead != nullptr && evenHead != nullptr) {
if (oddHead->val <= evenHead->val) {
tail->next = oddHead;
oddHead = oddHead->next;
} else {
tail->next = evenHead;
evenHead = evenHead->next;
}
tail = tail->next;
}
// 如果有一个链表未遍历完,直接添加剩下的部分到结果链表尾部
if (oddHead != nullptr) tail->next = oddHead;
if (evenHead != nullptr) tail->next = evenHead;
return mergedHead;
}
int main() {
int nodes = 5;
int input[] = {1, 2, 3, 4, 5};
ListNode* head = createList(nodes, input);
ListNode* oddHead, *evenHead;
splitList(head, oddHead, evenHead);
cout << "奇数链表: ";
printList(oddHead);
cout << "\n偶数链表: ";
printList(evenHead);
ListNode* mergedHead = mergeLists(oddHead, evenHead);
cout << "\n合并结果: ";
printList(mergedHead);
return 0;
}
// 辅助函数:打印链表
void printList(ListNode* node) {
while (node != nullptr) {
cout << node->val << " ";
node = node->next;
}
cout << endl;
}
```
这个程序会首先创建一个包含给定值的链表,然后拆分成奇数链表和偶数链表,并将它们合并。注意,这里假设所有输入都是正整数。
阅读全文