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)); } }
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); }
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; }