مساله مختصات حلزونی - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

مساله مختصات حلزونی

0 امتیاز

 

برنامه ای بنویسید که عدد n را دریافت کند و طبق الگوریتم حلزونی داخل تصویر مختصات مربوط به نقطه n را چاپ کند 

نمونه ورودی : 

14 

خروجی :   

  ( 3 - , 4 )

سوال شده اردیبهشت 11, 1399  بوسیله ی none (امتیاز 64)   1 3 6

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

حداقل کد خودتون را هم قرار بدید این طور باشه میشه تکلیف دانشگاه.

#include <iostream>
#include <vector>
#include <deque>
#include <array>
using namespace std;

#include <iostream>

struct Point{
    
    Point(int x=0,int y=0):
    x_(x),
    y_(y){}
    int x_;
    int y_;
};


class CochlearCoordinate {
    public:
       CochlearCoordinate(){
           reset();
       }
       void  reset(){
         current_point_ = Point(0,0);
         current_direct_ = 0;
         counter_ = 0;
         current_size_ = 1;
       }
       int nextDirect(){
           current_direct_++;
           if (current_direct_ >= coordinates_.size())
              current_direct_ = 0;
       }
       int getNextSize(){
           counter_++;
           if (counter_ >= 2){
               counter_ = 0;
               current_size_++;
           }
       }
       Point movePoint(const Point& center,const Point& offset){
           Point result = center;
           result.x_ = result.x_ +(offset.x_ * current_size_);
           result.y_ = result.y_+(offset.y_ * current_size_);
           return result;
       }
       int currentSize()const{
           return current_size_;
       }
       Point currentPoint()const{
           return current_point_;
       }
       Point nextPoint(){
           
           current_point_ = movePoint(current_point_,coordinates_[current_direct_]);
           nextDirect();
           getNextSize();
           return current_point_;
       }
       
       
    private:
       int counter_;
       int current_size_;
       int current_direct_;
       Point current_point_ ;
       std::array<Point,4> coordinates_{Point(1,0),Point(0,1),Point(-1,0),Point(0,-1)};
    
};

void printPoint(const Point& pnt){
    cout << "x:" << pnt.x_ << " y:"<< pnt.y_ << endl;
}
int main()
{
    CochlearCoordinate cochl;
    printPoint(cochl.currentPoint());
    int counter = 0;
    int count = 14;
    while (counter < count -1){
        printPoint(cochl.nextPoint()); 
        counter++;
    }

    return 0;
}

 

پاسخ داده شده اردیبهشت 11, 1399 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
انتخاب شد مهر 11, 1399 بوسیله ی none
...