和为S的两个数字VS和为S的连续正整数

    xiaoxiao2021-03-25  143

    和为S的连续正整数

    定义first指针指向第一个数字1,last指针指向第二个数字2;定义curSum为first-last之间数字的和;比较S与curSum的大小,若相等则打印first-last;若curSum大,则first后移;若curSum小,则last前移。 #include <iostream> using namespace std; void Print(int first, int last){ for(int i=first; i<=last; i++) cout<<i<<' '; cout<<endl; } void FindContinueNumbers(int num){ int first = 1, last = 2; int mid = (num + 1) / 2; int curSum = first + last; while(first < mid){ if(num == curSum){ Print(first, last); first++; curSum -= first - 1; } else if(curSum < num){ last ++; curSum += last; } else{ first++; curSum -= first - 1; } } } int main(){ int num = 9; FindContinueNumbers(num); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-11792.html

    最新回复(0)