Example #1
0
int getWays(int n){

  if(n<0){
    return(0);
  }
  else if(n==0){
    return(1);
  }
  else{
    return (getWays(n-1) + getWays(n-2) + getWays(n-3));
  }
}
Example #2
0
void problem1(){
  int N;
  printf("Enter number of steps:\n");
  scanf("%d",&N);
  int ways = getWays(N);
  printf("\nThe number of ways in which you can do this is %d.\n",ways);
}
Example #3
0
Client *MsgEdit::client(void *&data, bool bCreate, bool bTyping, unsigned contact_id)
{
    data = NULL;
    Contact *contact = getContacts()->contact(contact_id);
    if (m_client.empty()){
        if (contact == NULL)
            return NULL;
        vector<ClientStatus> cs;
        getWays(cs, contact);
        unsigned i;
        for (i = 0; i < cs.size(); i++){
            Client *client = getContacts()->getClient(cs[i].client);
            if (client->canSend(m_type, cs[i].data)){
                data = cs[i].data;
                if (bTyping)
                    changeTyping(client, data);
                return client;
            }
        }
        for (i = 0; i < cs.size(); i++){
            for (unsigned n = 0; n < getContacts()->nClients(); n++){
                Client *client = getContacts()->getClient(n);
                clientData *d = cs[i].data;
                Contact *c;
                if (!client->isMyData(d, c))
                    continue;
                if (c && (c != contact))
                    continue;
                if (client->canSend(m_type, d)){
                    if (bCreate)
                        client->createData(cs[i].data, contact);
                    data = cs[i].data;
                    if (bTyping)
                        changeTyping(client, data);
                    return client;
                }
            }
        }
        if (bTyping)
            changeTyping(NULL, NULL);
        return NULL;
    }
    if (contact == NULL)
        return NULL;
    void *d;
    ClientDataIterator it(contact->clientData);
    while ((d = ++it) != NULL){
        if (m_client == it.client()->dataName(d)){
            data = d;
            if (bTyping)
                changeTyping(it.client(), data);
            return it.client();
        }
    }
    if (bTyping)
        changeTyping(NULL, NULL);
    return NULL;
}